題目描述
輸入一行字符,分別統計出其中英文字母、空格、數字和其他字符的個數。
輸入
一行字符
輸出
統計值
樣例輸入
aklsjflj123 sadf918u324 asdf91u32oasdf/.';123
樣例輸出
23 16 2 4
來源/分類
C語言
題目截圖:
題目中的空格 數字這兩個選項位置放反啦~
思路:
我們只好通過一個getchar()函數逐個對輸入的字符進行修改啦~
一個一個進行判斷!
反正是這個函數!
getchar()是到緩衝區讀取第一個字符
首先,從鍵盤輸入許多字符,最後回車後,所有字符包括回車放到緩衝區
這時纔開始循環執行getchar(),讀入一個字符判斷是否回車,不是就繼續讀。
是回車就退出循環(之所以說是順序接受一行字符,是因爲它取的始終是緩衝區中第一個字符,
每取一個緩衝區的字符少一個,也就是順序讀取了!
代碼:
#include<iostream>
using namespace std;
int main()
{
char c;int a,b,x,y;a=b=x=y=0;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>'A'&&c<'Z'))
a++;
else
if(c==' ')
b++;
else
if(c>='0'&&c<='9')
x++;
else
y++;
}
//cout<<a<<" "<<b<<" "<<x<<" "<<y<<" "<<endl;
cout<<a<<" "<<x<<" "<<b<<" "<<y<<" "<<endl;
}
執行結果:
OJ結果: