回覆列表
-
1 # 使用者7825135855674
-
2 # lanfengz3
//#include "stdafx.h"//If the vc++6.0, with this line.
#include
#include
using namespace std;
int main(int argc,char *argv[]){
string s;
cin >> s;
for(int sum=0,i=0;s[i];i++)
if(s[i]>="0" && s[i]
sum++;
cout
return 0;
}
我用C語言實現給出一個思路。對於題主的問題,可以考慮使用getchar()函式來實現,具體的步驟是這樣的:
使用getchar()函式從stdin,更準確的說,是從緩衝區中逐個讀入字元;判斷當前讀入的字元屬於數字還是字母還是空白字元還是其他字元;根據當前讀入的字元型別,使得對應的字元計數器自增1;如果讀取到EOF,則表明讀取完畢。上述步驟中,有幾個技術點需要你去了解的:getchar()函式的使用,緩衝區的概念,標準輸入stdin的概念,輸入結尾標記EOF的概念。關於這些概念,我在另一個回答中已經闡明,有興趣的可以參考我的這個回答:C語言統計輸入的字元數? - 知乎
回到當前問題中來,按照上述思路,可以初步擬定一份程式碼如下:
程式碼不長,應該比較好理解。換行符"\n"、空格符" "、製表符"\t"都算作空白字元。
但是對於統計中文字元,程式碼還有所欠缺,不過對於統計一般的字元應該綽綽有餘了。我運行了下,結果如下:
最後我是以CTRL+Z來模擬鍵盤輸入結束!