#include <stdio.h> int main() { char a=0; int num_count=0; int space_count=0; int other_count=0; //注意此處,不能寫成a=getchar(),然後while(a!='\n'),這樣做只能輸入一行,然後進行死循環 while((a=getchar())!='\n') { if(a>='0'&&a<='9') { num_count++; } else if(a==' ') { space_count++; } else { other_count++; } } printf("num_count=%d\n",num_count); printf("space_count=%d\n",space_count); printf("other_count=%d\n",other_count); return 0; } 另一方法----調用函數: #include <stdio.h> #include <ctype.h> //對空白字符的判斷,調用了isspace()函數,所以要調用頭文件 int main() { char str[20]; //這塊對輸入有所限制了 int num_count=0; int space_count=0; int other_count=0; char *p=str; gets(str); //接收字符串 while(*p) { if(*p>='0'&&*p<='9') { num_count++; } else if(isspace(*p)) //用isspace函數來判斷是不是空白字符 { space_count++; } else { other_count++; } p++; } printf("num_count=%d\n",num_count); printf("space_count=%d\n",space_count); printf("other_count=%d\n",other_count); return 0; }