輸人一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數
阿新 • • 發佈:2020-09-08
輸人一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數
答案解析:
該題可以呼叫getchar
函式,從stdin流中讀入一個字元,當輸入多個字元時,getchar()再執行時就會直接從緩衝區中讀取了。等同於getc(stdin)
。所以,我們迴圈呼叫getchar,直到將標準輸入的內容讀到換行符\n
為止。同時判斷,讀取到的字元是英文字母、空格、數字或者其他字元,並計數;
程式碼示例:
#include <stdio.h> int main() { char c; //定義eng_char為英文字母的個數,初始值為0 //定義space_char為空格字元的個數,初始值為0 //定義digit_char為數字字元的個數,初始值為0 //定義other_char為其他字元的個數,初始值為0 int eng_char = 0, space_char = 0, digit_char = 0, other_char = 0; printf("請輸入一行字元:"); while ((c = getchar()) != '\n') { if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') { eng_char++; } else if (c == ' ') { space_char++; } else if (c >= '0' && c <= '9') { digit_char++; } else { other_char++; } } printf("英文字母數量:%d\n空格數量:%d\n數字數量:%d\n其他字元數量:%d\n", eng_char, space_char, digit_char, other_char); return 0; }