輸人一行字符,分別統計出其中英文字母、空格、數字和其他字符的個數
答案解析:
該題可以調用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;
}