方法一:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c, i, a;
int ndigit[37] = {0};
while((c = getchar()) != EOF){
if (c >= '0' && c <= '9'){
++ndigit[c - '0'];
}
if (c == ' ' || c == '\t' || c == '\n' ){
++ndigit[10];
}
if (c >= 'a' && c <= 'z'){
++ndigit[c - 'a' + 11];
}
}
for(i = 0; i < 10; ++i ){
printf(" %5d",i);
for(a = 1; a <= ndigit[i]; ++a ){
printf("*");
}
printf(" (%d)\n",ndigit[i]);
}
printf("空白符");
for(a = 1; a <= ndigit[10]; ++a ){
printf("*");
}
printf(" (%d)\n",ndigit[10]);
for(i = 11; i < 37; i++){
printf("%6c",(char)(i - 11 + 'a'));
for(a = 1; a <= ndigit[i]; ++a ){
printf("*");
}
printf(" (%d)\n",ndigit[i]);
}
}
经检验 可以统计出空白符,数字,小写