用c语言写一个程序在文件中确定是否包含特定词。键盘输入规范是原始的文本文件名字,要查找的词。输出规范是显示包含那个词的特定行。如果文件包含多于一个,所有行都应该
时间: 2024-03-26 20:34:20 浏览: 101
编写一个程序,用于统计文件中单词的总数,不同单词的数目。(假设输入文件中只包含字母和空格)
5星 · 资源好评率100%
以下是一个示例代码,可以在文件中查找指定的词,并显示包含该词的行:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LEN 1000 // 假设文件中的每行最多有1000个字符
int main() {
char file_name[100]; // 存放文件名的数组
char search_word[100]; // 存放要查找的词的数组
char line[MAX_LINE_LEN]; // 存放每行文本的数组
int line_num = 0; // 当前行号
FILE* file;
// 从键盘读入文件名和要查找的词
printf("Enter file name: ");
scanf("%s", file_name);
printf("Enter search word: ");
scanf("%s", search_word);
// 打开文件
file = fopen(file_name, "r");
if (file == NULL) {
printf("Failed to open file %s\n", file_name);
return 1;
}
// 逐行读取文件内容并查找指定词
while (fgets(line, MAX_LINE_LEN, file) != NULL) {
line_num++; // 增加行号
if (strstr(line, search_word) != NULL) { // 如果该行包含指定词
printf("Line %d: %s", line_num, line); // 输出该行
}
}
// 关闭文件
fclose(file);
return 0;
}
```
在上面的代码中,我们先从键盘读入文件名和要查找的词。然后打开文件,并逐行读取文件内容,使用标准库函数strstr()在每行中查找指定词。如果找到了,则输出该行的行号和内容。
请注意,上面的代码假设文件中的每行最多有1000个字符。如果实际情况不是这样,应该根据实际情况调整MAX_LINE_LEN的值。另外,上面的代码没有考虑文件编码的问题,如果文件编码不是ASCII或UTF-8,可能会导致查找不到指定词。
阅读全文