用C语言编写程序,在一个指定文件中查找某一字符串,将查找到的字符串用双引号括起来进行标记。注意:要查找的字符串若有多个,均要被标记。
时间: 2024-05-08 13:21:39 浏览: 85
以下是一个简单的C语言程序,可以实现在指定文件中查找某一字符串,并用双引号括起来进行标记:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 1024
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("Usage: %s <filename> <search_string>\n", argv[0]);
return 1;
}
char *filename = argv[1];
char *search_string = argv[2];
FILE *fp = fopen(filename, "r");
if (!fp) {
printf("Failed to open file: %s\n", filename);
return 1;
}
char line[MAX_LINE_LENGTH];
while (fgets(line, MAX_LINE_LENGTH, fp)) {
char *found = strstr(line, search_string);
while (found) {
// 将找到的字符串用双引号括起来
printf("%.*s\"%s\"", (int)(found - line), line, search_string);
line[strlen(line) - strlen(found) + strlen(search_string)] = '\0';
found = strstr(found + strlen(search_string), search_string);
}
printf("%s", line);
}
fclose(fp);
return 0;
}
```
程序的使用方法为:
```
$ ./find_and_mark <filename> <search_string>
```
其中,`<filename>` 是要查找的文件名,`<search_string>` 是要查找的字符串。例如,要在文件 `test.txt` 中查找字符串 `hello` 并进行标记,可以执行以下命令:
```
$ ./find_and_mark test.txt hello
```
程序会将查找到的所有字符串都用双引号括起来进行标记,并输出到标准输出流中。如果需要将结果保存到文件中,可以使用重定向符号 `>`,例如:
```
$ ./find_and_mark test.txt hello > output.txt
```
阅读全文