重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
b=(getchar())!=EOF这里出问题了!赋值(=)符号优先级低于逻辑运算符!=,所以得到的b只有0或1~
鱼峰网站建设公司成都创新互联公司,鱼峰网站设计制作,有大型网站制作公司丰富经验。已为鱼峰成百上千提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的鱼峰做网站的公司定做!
话说貌似EOF是要ctrl+z作为输入结束的
思路:统计字符串中的空格,所以该字符串中有空格,则输入只能使用gets函数,再依次遍历该字符串,判断字符是否是空格,如果是,则空格个数自加1。
参考代码:
#includestring.h
#includestdio.h
#includemath.h
int main()
{
int sum=0,i;
char a[100];
gets(a);
for(i=0;a[i]!='\0';i++)
if(a[i]==' ')
sum++;
printf("%d\n",sum);
return 0;
}
/*
输出:
af adf asfd
4
*/
貌似几个方面有问题:
1.接收有空格的字符串用gets(str);
scanf遇到空格自动结束接收。
2.scanf语句中,数组名就是它的地址,所以不要加。
3.两个函数中,getchar();这句是多余的。
4.后一个函数中,for语句有问题(当你输入的字符中有0时会出错)。
5.下面代码可以供你参考。
代码一:
#includestdio.h
void main()
{
char str[30];
int i,a=0;
printf("Input string:\n");
gets(str);
for(i=0;str[i]!='0';i++)
{
if (str[i]==' ')
a++;
}
printf("%d\n",a);
}
代码二:
#includestdio.h
void main()
{
char str[30];
int i,t,b=0;
printf("Input string:\n");
gets(str);
t=strlen(str);
for(i=0;it;i++)
{
if (str[i]='a' str[i]='z')
b++;
}
printf("%d\n",b);
}