c语言输入字符串用逗号分开

如题所述

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

温馨提示:答案为网友推荐,仅供参考
相似回答