C语言根据关键字查询文件
时间: 2024-01-08 17:02:25 浏览: 25
以下是一个示例程序,可以根据关键字查询文件:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 100
#define MAX_KEYWORD_LENGTH 20
int main() {
char filename[MAX_LINE_LENGTH], keyword[MAX_KEYWORD_LENGTH], line[MAX_LINE_LENGTH];
FILE *file;
int line_number = 0;
printf("Enter the file name: ");
fgets(filename, MAX_LINE_LENGTH, stdin);
filename[strcspn(filename, "\n")] = '\0'; // remove the newline character
printf("Enter the keyword to search: ");
fgets(keyword, MAX_KEYWORD_LENGTH, stdin);
keyword[strcspn(keyword, "\n")] = '\0';
file = fopen(filename, "r");
if (file == NULL) {
printf("Error: could not open file.\n");
return 1;
}
while (fgets(line, MAX_LINE_LENGTH, file) != NULL) {
line_number++;
if (strstr(line, keyword) != NULL) {
printf("Line %d: %s", line_number, line);
}
}
fclose(file);
return 0;
}
```
该程序首先要求用户输入要搜索的文件名和关键字,然后打开文件并逐行读取文件内容。对于每一行,程序会检查是否包含关键字,如果包含,则输出该行的行号和内容。最后关闭文件并退出程序。