用C语言写一个可以运行的代码 输入:文件(10M以上) 输出:输入一个词,返回该词在文件中出现的次数(查找)
时间: 2024-12-25 10:36:40 浏览: 3
在C语言中,要编写一个读取大文件并统计某个单词出现次数的程序,可以使用`fopen`打开文件、`fscanf`逐行读取内容以及`strstr`查找单词。以下是一个简单的示例,假设我们已经处理了文件路径和文件过大导致的问题:
```c
#include <stdio.h>
#include <string.h>
// 函数原型声明,用于避免链接阶段的重复定义错误
void count_word_in_file(const char* filename, const char* word);
int main() {
char input[100]; // 用户输入的单词
printf("请输入需要查找的单词: ");
fgets(input, sizeof(input), stdin); // 从标准输入获取用户输入
input[strcspn(input, "\n")] = '\0'; // 清除换行符
count_word_in_file("your_large_file.txt", input); // 替换成你的文件名
return 0;
}
// 查找单词并计数的函数
void count_word_in_file(const char* filename, const char* word) {
FILE* file = fopen(filename, "r");
if (file == NULL) {
perror("Error opening file.");
return;
}
int count = 0;
char line[1024];
while (fgets(line, sizeof(line), file)) { // 逐行读取文件
size_t pos = strpos(line, word);
while (pos != NULL) {
count++;
pos = strstr(line + pos + strlen(word), word); // 继续查找下一个位置
}
}
fclose(file);
printf("单词 '%s' 在文件中出现了 %d 次.\n", word, count);
}
```
这个代码会提示用户输入要查找的单词,并在指定的文件中搜索该单词。请注意将`"your_large_file.txt"`替换为你要操作的实际文件路径。
阅读全文