c语言遇到一题,题目是检测出输入的文字中的字母,空格的个数。
起初设置了一个数组:
int a[20];
想偷懒,于是设置了一个输入字符串的命令:
scanf("%s",a);
但是在验证程序的时候遇到了问题,无法验证空格以及空格之后的输入数据,比如说输入:qwe 12f 输出数组a中的数据:gwe 后面的数据都没有存入数组中。
在输出中我是这么控制的:
while(*p!='\0'){
为了达到题目的目的,我改成了:
for(i=0;i<n;i++){
scanf("%c",&a[i]);
}
这样就可以输入空格了,但是这必须输入定长的数据。
参考了答案,还可以这么设置:while((a[i]=getchar())!='\n') n++;
这样就可以测试空格了

补充一下,还有一个语句可以输入带空格的字符串,就是:gets()
char a[10];
gets(a);
puts(a);