1. 程式人生 > 實用技巧 >輸人一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數

輸人一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數

輸人一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數

答案解析:

該題可以呼叫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;
}

執行截圖: