c語(yǔ)言怎么統(tǒng)計(jì)字符串中單詞個(gè)數(shù)

小億
135
2023-11-07 16:59:47

要統(tǒng)計(jì)字符串中單詞的個(gè)數(shù),可以利用以下思路:

  1. 定義一個(gè)計(jì)數(shù)器變量count,初始值為0,用于記錄單詞的個(gè)數(shù)。
  2. 遍歷字符串中的每個(gè)字符,從第一個(gè)字符開(kāi)始,判斷當(dāng)前字符是否為空格或者標(biāo)點(diǎn)符號(hào)。
  3. 如果當(dāng)前字符不為空格或者標(biāo)點(diǎn)符號(hào),則進(jìn)入循環(huán),繼續(xù)判斷下一個(gè)字符。
  4. 如果當(dāng)前字符為空格或者標(biāo)點(diǎn)符號(hào),則判斷前一個(gè)字符是否是字母或數(shù)字。
  5. 如果前一個(gè)字符是字母或數(shù)字,則說(shuō)明找到了一個(gè)單詞,將計(jì)數(shù)器count加1。
  6. 遍歷完整個(gè)字符串后,計(jì)數(shù)器count的值即為單詞的個(gè)數(shù)。

以下是一個(gè)示例代碼:

#include <stdio.h>

int countWords(char *str) {
    int count = 0;
    int isWord = 0; // 標(biāo)記是否在單詞中

    // 遍歷字符串中的每個(gè)字符
    for (int i = 0; str[i] != '\0'; i++) {
        // 判斷當(dāng)前字符是否為空格或者標(biāo)點(diǎn)符號(hào)
        if (str[i] == ' ' || str[i] == ',' || str[i] == '.' || str[i] == '?' || str[i] == '!') {
            isWord = 0; // 不在單詞中
        }
        else {
            // 判斷前一個(gè)字符是否是字母或數(shù)字
            if (i == 0 || str[i-1] == ' ' || str[i-1] == ',' || str[i-1] == '.' || str[i-1] == '?' || str[i-1] == '!') {
                isWord = 1; // 在單詞中
                count++; // 單詞計(jì)數(shù)器加1
            }
        }
    }
    return count;
}

int main() {
    char str[] = "Hello, World! This is a string.";
    int wordCount = countWords(str);
    printf("The number of words in the string is: %d\n", wordCount);
    return 0;
}

運(yùn)行以上代碼,將輸出字符串中的單詞個(gè)數(shù)為7。

0