c语言在文件中查找字符串并替换
时间: 2024-04-29 21:24:25 浏览: 99
字符串替换函数基于C语言实现可运行于Linux
5星 · 资源好评率100%
以下是一个简单的C语言程序,它可以在文件中查找指定字符串并进行替换:
```c
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 1024
void replace(char *filename, char *search, char *replace) {
FILE *fp;
char buffer[BUFFER_SIZE];
char *p;
int found = 0;
// 打开文件
fp = fopen(filename, "r+");
if (fp == NULL) {
printf("无法打开文件 %s\n", filename);
return;
}
// 逐行读取文件内容
while (fgets(buffer, BUFFER_SIZE, fp) != NULL) {
p = strstr(buffer, search);
if (p != NULL) {
// 找到了指定的字符串
found = 1;
// 替换字符串
strcpy(p, replace);
fputs(buffer, fp);
break;
}
}
// 关闭文件
fclose(fp);
if (found)
printf("已替换文件 %s 中的字符串 %s\n", filename, search);
else
printf("未找到文件 %s 中的字符串 %s\n", filename, search);
}
int main() {
char filename[256], search[256], replace[256];
printf("请输入文件名:");
scanf("%s", filename);
printf("请输入要查找的字符串:");
scanf("%s", search);
printf("请输入要替换的字符串:");
scanf("%s", replace);
replace(filename, search, replace);
return 0;
}
```
程序中使用了 strstr 函数来查找字符串,并使用 strcpy 函数和 fputs 函数来进行字符串替换。需要注意的是,这个程序只能替换文件中第一次出现的指定字符串,如果文件中有多个相同的字符串,只会替换第一个。
阅读全文