#include<stdio.h> int main() { int c = 0; int num_count = 0; int emp_count = 0; int els_count = 0; while((c = getchar()) != EOF) { if((c >= '0')&&(c <= '9')) { num_count ++ ; } else if(c == ' ') { emp_count ++; } else { els_count ++; } } printf("%d %d %d",num_count,emp_count,els_count); return 0; }
另外,方法2相比优与方法1
(1)可计算出每个数字具体有几次。
(2)对于空格使用了函数isspace()。
#include<stdio.h> int main() { int c = 0; int num_count = 0; int emp_count = 0; int els_count = 0; int arr[10] ={0}; int i = 0; while((c = getchar()) != EOF) { if(c >= '0'&&c <= '9') { arr[c-'0'] ++; } else if(isspace(c)) { emp_count ++; } else { els_count ++; } } printf("emp_count: %d\n",emp_count); printf("els_count: %d\n",els_count); for( ; i<10;i++) { printf("%d:%d\n", i, arr[i]); } return 0; }