问题描述
- c语言关于字符getchar()的问题
- 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数
测试用例 1 ni12$$?
字母=2空格=0数字=2其它=2?下面是我写的程序,思路就是让ch的初始值为0,然后进入for语句循环,直到输入回车为止,中间还加了个if ch='
' break;用来跳出。但是无论输入什么结果不知为何都是0。。。我上网查说要用while((ch=getchar())!='
') 但我不太明白我这种方式为何不可以??#include <stdio.h>void main(){char cha=0b=0c=0d=0;for(ch=0;ch!=' ';){ch=getchar();if ch=' ' 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""abcd);}
解决方案
if ch='
' break;
这个删除
解决方案二:
许多初学者都习惯用?char?型变量接收?getchar、getc,fgetc?等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar?等函数的返回值类型都是int?型
下面是getchar()的定义:
[html]?view?plaincopyprint?
?
1?int??
2?getchar?()??
3?{??
4???int?result;??
5?......
答案就在这里:C语言中getchar中的问题
时间: 2024-10-29 07:48:15