C语言输入字符问题 为撒用gets(a)才行,scanf("%s",a)就不行,scanf不也是用来输入字符串的么?

#include<stdio.h>
int main()
{
int i=0,*p,k=0;
char a[9];
gets(a);

for(k=0;k<9;k++)
if (a[k]==' ')
i++;

p=&i;

printf("%d\n",*p);

}
此函数用于统计 输入空格 的总个数
gets(a);改成scanf("%s",a)就运行错误,计算不出来

改后的如下
#include<stdio.h>
int main()
{
int i=0,*p,k=0;
char a[9];
scanf("%s",a);

for(k=0;k<9;k++)
if (a[k]==' ')
i++;

p=&i;

printf("%d\n",*p);

}

第1个回答  2013-06-04
scanf只能读入一个单词,即去掉前边空格,然后读到下个空格
其他的字符就不要了
不如你
定义一个
char ch;
然后ch=getchar();
然后把ch赋值给数组每个元素本回答被提问者采纳
第2个回答  2013-06-04
因为用scanf的话,输入空格就表示你输入完毕,所以后边的就没有存进去。
第3个回答  2013-06-04
#include <stdio.h>

int main(int argc, char** argv)
{
char a[30];
scanf("%[^\n]s",a);//这样就行了
printf("%s\n", a);
   return 0;
}

第4个回答  2013-06-04
再看看gets() 和 scanf("%s",a)的概念吧,好好掌握
第5个回答  2013-06-04
scanf不能输入空格,fgets可以

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网