#include<stdio.h>
int main()
{
char a;
int letters=0,digits=0,others=0;
while ((a=getchar())!='?') {
if ((a>='0') && (a<='9')) {
digits++;
} else if (a>='a' && a<='z') {
letters++;
} else if (a>='A' && a<='Z') {
letters++;
} else {
others++;
}
}
printf("Letters=%d\n",letters);
printf("Digits=%d\n",digits);
printf("Others=%d\n",others);
return 0;
}
今天的知识点:
while ((a = getchar()) != '?' 这个循环的工作原理如下:
- getchar() 函数从标准输入(通常是键盘)读取一个字符
- 读取到的字符被赋值给变量 a
-
检查这个字符是否不等于 ?
- 如果不等于 ?,则执行循环体中的代码
- 如果等于 ?,则退出循环
在判断数字的条件中,使用了 a < '10' 这样的写法,这是不正确的。因为 '10' 并不是一个有效的字符常量,字符常量只能包含单个字符。
错因:
对字符串的理解和写法不熟悉

京公网安备 11010502036488号