C语言实现关键词搜索输出关键词所在行数
时间: 2024-11-12 15:46:17 浏览: 24
在C语言中,实现关键词搜索并输出关键词所在的行数可以使用文件操作、字符串处理以及循环遍历等基本功能。下面是一个简单的示例,假设我们有一个文本文件,我们要在其中查找特定的关键词,并统计其出现的次数及位置:
```c
#include <stdio.h>
#include <string.h>
#define KEYWORD "your_keyword" // 替换为你要搜索的关键词
int find_keyword(char *filename) {
int line_num = 1, keyword_pos = -1;
FILE *file = fopen(filename, "r");
if (file == NULL) {
perror("Failed to open file");
return -1;
}
char buffer[1024]; // 读取一行的数据大小
while (fgets(buffer, sizeof(buffer), file)) {
size_t pos = strcspn(buffer, "\n"); // 获取行内非换行符部分的长度
buffer[pos] = '\0'; // 结束行尾的换行符
if (strstr(buffer, KEYWORD) != NULL) { // 搜索关键词
keyword_pos = line_num; // 找到关键字,记录行号
printf("Keyword '%s' found at line %d\n", KEYWORD, line_num);
}
line_num++;
}
fclose(file);
return keyword_pos;
}
int main() {
int result = find_keyword("your_file.txt"); // 替换为你需要搜索的文件路径
if (result != -1) {
printf("Keyword not found.\n");
} else {
printf("Finished searching.\n");
}
return 0;
}
```
在这个程序中,我们首先打开文件,然后逐行读取内容,使用`strcspn`函数找到每一行的内容直到遇到换行符。如果找到关键词,就打印出该行号。最后别忘了关闭文件。
注意替换`KEYWORD`为你要搜索的实际关键词,以及`"your_file.txt"`为你想要搜索的文件名。
阅读全文