#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' 并不是一个有效的字符常量,字符常量只能包含单个字符。
错因:
对字符串的理解和写法不熟悉