C语言程序实现grep
时间: 2024-10-22 13:01:39 浏览: 25
C语言中实现grep命令这样的文本查找工具,通常会涉及文件I/O、字符串处理和模式匹配算法。grep是一个标准的Unix/Linux命令,用于搜索文本文件中包含特定模式的行。在C语言中,我们可以创建一个简单的程序来模拟这种功能,虽然它可能不如系统自带的grep强大,但可以作为一个基础示例。
以下是一个简单的C程序,名为`mygrep.c`,它可以读取一个文件,逐行搜索指定的模式:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 搜索函数
int search(char *line, const char *pattern) {
size_t len = strlen(pattern);
return strstr(line, pattern) != NULL;
}
// 主函数
int main(int argc, char **argv) {
if (argc != 3) {
printf("Usage: mygrep <file> <pattern>\n");
return 1;
}
FILE *input_file = fopen(argv[1], "r");
if (!input_file) {
perror("Error opening file");
return 1;
}
char line[1024]; // 可调整大小以适应更大的输入
while (fgets(line, sizeof(line), input_file)) {
if (search(line, argv[2])) {
printf("%s", line); // 输出含有模式的行
}
}
fclose(input_file);
return 0;
}
阅读全文