输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数
测试用例 1 ni12$$↵
字母=2,空格=0,数字=2,其它=2↵
下面是我写的程序,思路就是让ch的初始值为0,然后进入for语句循环,直到输入回车为止,中间还加了个if ch='\n' break;用来跳出。但是无论输入什么结果不知为何都是0。。。我上网查说要用while((ch=getchar())!='\n') 但我不太明白我这种方式为何不可以??
#include <stdio.h>
void main()
{char ch,a=0,b=0,c=0,d=0;
for(ch=0;ch!='\n';)
{ch=getchar();
if ch='\n' break;
if(('a'<=ch&&ch<='z')||('A'<=ch&&ch<='z')) a++;
else {if(ch==' ') b++;
else {if('0'<=ch&&ch<='9') c++;
else else d++;}}}
printf("字母=%d,空格=%d,数字=%d,其他=%d",a,b,c,d);
}
if ch='\n' break;
这个删除
许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返回值类型都是int 型
下面是getchar()的定义:
[html] view plaincopyprint?
1 int
2 getchar ()
3 {
4 int result;
5 ......
答案就在这里:C语言中getchar中的问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。