ACMNO.8輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數。 輸入 一行字元 輸出 統計值 樣例輸入 aklsjflj123 sadf918u324 asdf91u32
阿新 • • 發佈:2018-12-08
題目描述
輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數。
輸入
一行字元
輸出
統計值
樣例輸入
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結果: