|
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 函数声明
int countWord(const char *text, const char *word);
int main() {
char text[1000]; // 假设文本最大长度为 1000 个字符
char word[50]; // 假设词语最大长度为 50 个字符
printf("请输入一段文本(按回车结束):\n");
fgets(text, sizeof(text), stdin);
printf("请输入要统计的词语:\n");
fgets(word, sizeof(word), stdin);
// 将文本和词语转换为小写
for (int i = 0; text[i] != '\0'; i++) {
text[i] = tolower(text[i]);
}
for (int i = 0; word[i] != '\0'; i++) {
word[i] = tolower(word[i]);
}
// 调用函数统计词语出现次数
int count = countWord(text, word);
printf("词语 \"%s\" 在文本中出现的次数是:%d\n", word, count);
return 0;
}
// 函数实现
int countWord(const char *text, const char *word) {
int count = 0;
int wordLength = strlen(word);
while (*text) {
// 跳过前导空白字符
while (*text == ' ' || *text == '\t' || *text == '\n') {
text++;
}
// 检查是否找到了整个词语
if (strncmp(text, word, wordLength) == 0) {
count++;
// 跳过整个词语
text += wordLength;
} else {
// 跳过一个单词的长度
text++;
}
}
return count;
}
|
|