#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()) != '?' 这个循环的工作原理如下:
  1. getchar() 函数从标准输入(通常是键盘)读取一个字符
  2. 读取到的字符被赋值给变量 a
  3. 检查这个字符是否不等于 ?
    • 如果不等于 ?,则执行循环体中的代码
    • 如果等于 ?,则退出循环
我的错误点:
在判断数字的条件中,使用了 a < '10' 这样的写法,这是不正确的。因为 '10' 并不是一个有效的字符常量,字符常量只能包含单个字符。
错因:
对字符串的理解和写法不熟悉