本题的题意是:给出一行字符,让你统计该行字符中每个字母出现的次数,每行后跟一个空行(注意是每行),
代码如下:
#include <cstdio> using namespace std; const int M = 0x9f; const int N = 0x60; int main() { char ch; int f = 0; do { int letter[27]={0}; ch = getchar(); while(ch != -1 && ch != '\n') { if(ch >= 'a' && ch <= 'z') letter[M&ch]++; ch = getchar(); } if(ch == '\n') for(int i=1;i<=26;i++) printf("%c:%d\n",i|N,letter[i]); if(ch != EOF) printf("\n"); }while(ch != EOF); return 0; }
这题需要注意的地方就是getchar()读到文件末尾时,返回的也是EOF。
还有局部变量是可以以”int a[27] = {0}“这种形式进行初始化的。
再就是注意判断非字母字符。