编写程序,编写函数实现单词的查找,对于已打开文本文件,统计其中包含某单词的个数。
时间: 2023-08-22 18:07:24 浏览: 109
当你已经打开了文本文件,并且想要统计其中某个单词的个数时,你可以编写一个函数来实现这个功能。下面是一个用C语言编写的示例函数:
```c
#include <stdio.h>
#include <string.h>
int countWordOccurrences(FILE* file, const char* word) {
char buffer[100]; // 缓冲区,用于存储每次读取的一行文本
int count = 0; // 统计单词出现次数的变量
// 逐行读取文本文件,直到文件结束
while (fgets(buffer, sizeof(buffer), file) != NULL) {
// 使用 strtok 函数将读取到的一行文本分割为单词
char* token = strtok(buffer, " \t\n\r");
// 在当前行中查找单词
while (token != NULL) {
// 使用 strcmp 函数比较单词是否匹配
if (strcmp(token, word) == 0) {
count++; // 匹配到了,增加计数器
}
token = strtok(NULL, " \t\n\r"); // 继续查找下一个单词
}
}
return count;
}
int main() {
FILE* file = fopen("example.txt", "r"); // 打开文本文件,"example.txt" 为文件路径,"r" 表示只读模式
if (file == NULL) {
printf("无法打开文件。\n");
return 1;
}
const char* word = "example"; // 要查找的单词
int count = countWordOccurrences(file, word); // 调用函数统计单词出现次数
printf("单词 \"%s\" 出现了 %d 次。\n", word, count);
fclose(file); // 关闭文件
return 0;
}
```
请注意,上述示例代码假设你已经打开了名为 `example.txt` 的文本文件,并且要统计其中单词 `"example"` 的出现次数。你可以根据实际需求修改文件路径和要查找的单词。
在示例代码中,`countWordOccurrences` 函数接受一个已打开的文件指针 `file` 和要查找的单词 `word`。函数使用 `fgets` 函数逐行读取文本文件,并使用 `strtok` 函数将每行文本分割为单词。然后,函数使用 `strcmp` 函数比较每个单词是否与要查找的单词匹配,如果匹配,则增加计数器 `count`。最后,函数返回计数器的值。
在 `main` 函数中,我们打开文件并检查是否成功打开。然后,我们调用 `countWordOccurrences` 函数来统计单词出现次数,并将结果打印出来。最后,我们关闭文件并结束程序。
请注意,示例代码中使用的缓冲区大小为 100 字节,你可以根据实际需求调整缓冲区大小。此外,示例代码还假设每个单词由空格、制表符或换行符分隔。如果你的文本文件中使用了其他分隔符,请相应地修改 `strtok` 函数的分隔符参数。
希望这个示例能帮助你编写一个能够统计文本文件中某个单词出现次数的函数。如有任何疑问,请随时提问。
阅读全文