統計單詞數目
阿新 • • 發佈:2021-01-12
由於每個單詞字母不一樣,長度不一樣,所以來依靠識別單詞來統計單詞數是比較難的,下面觀察一個字串
I am from China
不難發現,每個單詞後面都是緊跟一個空格的
因此可以使用一個標誌flag來表示上一個字元的狀態(0代表是空格),string[i]來表示當前字元的狀態
那麼在對輸入的字串進行遍歷的時候,如果當前字元string[i]不是空格(string[i]!=' '),而上一個字元是空格(flag==0),則說明有1個新單詞
若當前字元不是空格(string[i]!=' '),但是上一個字元也不是空格(flag==1),則說明正在遍歷一個單詞的內部字元,沒有1個新的單詞
#include<stdio.h> int main() { char string[100]; int count = 0, flag = 0; // flag==0 means a space, flag==1 means a new word printf("輸入一句英文:"); gets_s(string,100); for(int i = 0; string[i]; i++) { if (string[i] == ' ')// set flag to 0 flag = 0; else if (flag == 0) {// flag==0 and string[i]!=' ' means a new word flag = 1; count++; } } printf("count = %d", count); return 0; }
執行結果如下: