//注意到'A'-'A'=0,用数组下标代表各个字母即可。 // 这种思想用的还是挺多的,进制转换,字符串的题经常用。 #include "stdio.h" #include "string" using namespace std; int main(){ int letter[26]; char buf[1000]; while (scanf("%s",buf) != EOF){ for (int i = 0; i < 26; ++i) { letter[i] = 0; } string str = buf; for (int i = 0; i < str.size(); ++i) { if (buf[i] >= 'A' && buf[i] <= 'Z'){ letter[buf[i]-'A']++; } } for (int i = 0; i < 26; ++i) { printf("%c:%d\n",i+'A',letter[i]); } } }