从键盘上输入一个满足格式(形如“ A1,234 ” )要求的字符串(其长度不超过20),编程将其从分割符(“,”)位置分割成两个部分(如 A1 和 234 两个字符串),并在屏幕上分两行顺序显示分割后的结果(输入输出格式示例如下)。
输入: A 1, 234
输出 1 : A1
输出 2 : 234
方法1:不真正分隔,只是寻找分隔标志(逗号),然后用'\n'替代实现分两行输出。
方法2:真正以逗号作为分隔符,将字符串分成两个子串。
#include<stdio.h>
int main()
{
char c[100],a=0,b=0,d=0,i=0;
gets(c);
while(c[i]!=',');
{printf("%c",c[i]);
i++;}
printf('\n');
i++;
while(c[i]!='\0')
{printf("%c",c[i]);
i++;
}
printf('\n');
}
我写的代码输出不了结果 请问为啥
#include <stdio.h>
int main()
{
char c[100],a=0,b=0,d=0,i=0;
gets(c);
while(c[i]!=',') //这有问题
{
printf("%c",c[i]);
i++;
}
printf("\n"); //这有问题
i++;
while(c[i]!='\0')
{
printf("%c",c[i]);
i++;
}
printf("\n"); //这有问题
}
可以试着用 scanf 代替 gets 试试看
题主,请看您代码的最后一句【printf('\n');】,这一句很明显是个错误,因为里面的【'\n'】表示一个字符,而printf函数的第一个参数必须是字符串形式!
所以最后一句代码应该改成【printf("\n");】,因为双引号里面的内容才代表一个字符串
还有,中间的那行也是【printf('\n');】同样的错误,两个都改过来就可以运行了
#include
int main()
{
char c[100],a=0,b=0,d=0,i=0;
gets(c);
while(c[i]!=','); //去掉;
{printf("%c",c[i]);
i++;}
printf('\n'); //“\n”
i++;
while(c[i]!='\0') //"\n"
{printf("%c",c[i]);
i++;
}
printf('\n');
//加上 return 0;
}
#include<stdio.h>
int main()
{
char c[100],a=0,b=0,d=0,i=0;
gets(c);
while(c[i]!=','); //去掉;
{printf("%c",c[i]);
i++;}
printf('\n'); //“\n”
i++;
while(c[i]!='\0')
{printf("%c",c[i]);
i++;
}
printf('\n'); //“\n”
//加上 return 0;
}
我想知道你用的是什么编译器,gets()函数在ISO/IEC 9899 2011(C11)标准中被移除
int main()
{
char c[100], a = 0, b = 0, d = 0, i = 0;
while ((c[i] = getchar()) != '#')
{
i++;
}
i = 0;
while (c[i] != ',')
{
printf("%c", c[i]);
i++;
}
printf("\n");
i++;
while (c[i] != '#')
{
printf("%c", c[i]);
i++;
}
printf("\n");
return 0;
}
仅作参考
while多了一个分号啊,成了死循环
while(c[i]!=',');
i=0,c[0]!=','为真,因此执行while,而没有循环体,所以继续下次检测c[0]!=',',为真,以此重复