C语言输入字符串和数字时如何用逗号隔开

 我来答
蒙印枝威丁
2020-05-08 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:714万
展开全部
1
如果使用scanf进行格式化输入,用逗号隔开不适用于先输入字符串后输入数字的情况,仅适用于数字的间隔,或者先输入数字后输入字符串。
下面是先输入数字后输入字符串的例子:
#include <stdio.h>
int main()
{
char s[100];
int v;
scanf("%d,%s",&v, s);//先输入整型变量v,再输入字符串,可以使用逗号分隔。
printf("%s\n%d\n", s, v);//输出得到的变量,每行一个值。
return 0;
}如果输入:
123,abc
会输出:
abc
123
但是如果先输入字符串再输入数字,比如用scanf("%s,%d",s,&v);的格式,系统会出错。
2
如果需求必须是先输入字符串后输入数字,那么必须人工进行判断。
思路为用getchar逐个读入字符,并赋值到字符串对应位置,当出现逗号时结束。然后再用scanf读入数字。
代码如下:
#include <stdio.h>
int main()
{
char s[100];
int v;
int i = 0;
while(1)
{
s[i] = getchar();//逐个输入字符并赋值到字符串中。
if(s[i] == ',')//输入结束。
{
s[i] = '\0';//赋值结束符。
break;//退出循环。
}
i ++;
}
scanf("%d",&v);//继续输入数字。
printf("%s\n%d\n", s, v);//输出得到的变量,每行一个值。
return 0;
}以上程序输入:
abcd,123
输出哦
abcd
123
军悦昆吾Qh
2020-05-11 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:949万
展开全部
用scanf读入数据时,如果将字符数组写在前面可能会有问题,因此读入时需要注意顺序。
假设
char
name[20];
int
age;
scanf("%d,%s",&age,&name);
这样不会用问题
如果scanf("%s,%d",&name,&age);
这样读数据的话,可能会出现问题。
你自己试一下,想想为什么,呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式