1. 程式人生 > 實用技巧 >統計單詞數目

統計單詞數目

由於每個單詞字母不一樣,長度不一樣,所以來依靠識別單詞來統計單詞數是比較難的,下面觀察一個字串

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;
}                        

執行結果如下: