统计指定单词的个数C

请问怎么统计指定单词的个数
eg:输入两行
cat cat dog
dog dog cat
统计cat的个数
谢!

在 C 语言中,您可以使用以下方法来统计指定单词的个数:


1.使用字符串函数 strstr,该函数会在一个字符串中搜索另一个字符串的出现位置。您可以使用这个函数来搜索单词,并使用一个计数器来统计单词出现的次数。

例如:

#include <stdio.h>
#include <string.h>

int main() {
    char s[100];
    int count = 0;
    while (fgets(s, 100, stdin)) {
        // 在字符串 s 中搜索单词 "cat"
        char *p = strstr(s, "cat");
        while (p) {
            // 如果找到了,计数器加 1
            count++;
            // 继续在剩余的字符串中搜索
            p = strstr(p + 1, "cat");
        }
    }
    printf("%d\n", count);
    return 0;
}

2.使用 strtok 函数,该函数会将字符串按照指定的分隔符分割成若干个令牌(token)。您可以使用这个函数来将字符串分割成单词,然后遍历每个单词,如果找到了要统计的单词,计数器加 1。
例如:

#include <stdio.h>
#include <string.h>

int main() {
    char s[100];
    int count = 0;
    while (fgets(s, 100, stdin)) {
        // 将字符串 s 分割成若干个令牌
        char *word = strtok(s, " \t\n");
        while (word) {
            // 比较当前令牌是否是要统计的单词
            if (strcmp(word, "cat") == 0) {
// 如果是,计数器加 1
                count++;
            }
// 继续分割字符串,获取下一个令牌
            word = strtok(NULL, " \t\n");
        }
    }
    printf("%d\n", count);
    return 0;
}

这两种方法都可以用来统计指定单词的个数,您可以根据自己的需要选择合适的方法。