C++读取文件内容替换和插入字符串
时间: 2024-05-09 09:19:55 浏览: 13
以下是一个C程序示例,用于读取文件内容并替换和插入字符串:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 1024
void replaceString(char *line, const char *search, const char *replace) {
char *match = strstr(line, search);
if (match != NULL) {
size_t searchLen = strlen(search);
size_t replaceLen = strlen(replace);
size_t tailLen = strlen(match + searchLen);
memmove(match + replaceLen, match + searchLen, tailLen + 1);
memcpy(match, replace, replaceLen);
}
}
int main() {
FILE *fp;
char *line = NULL;
size_t len = 0;
ssize_t read;
const char *filename = "file.txt";
const char *searchString = "hello";
const char *replaceString = "goodbye";
const char *insertString = "world";
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Error: could not open file '%s'\n", filename);
return 1;
}
while ((read = getline(&line, &len, fp)) != -1) {
replaceString(line, searchString, replaceString);
printf("%s", line);
}
fclose(fp);
if (line) {
free(line);
}
fp = fopen(filename, "a");
if (fp == NULL) {
printf("Error: could not open file '%s'\n", filename);
return 1;
}
fprintf(fp, "%s\n", insertString);
fclose(fp);
return 0;
}
```
这个程序打开名为“file.txt”的文件并读取每一行。它用“replaceString”函数替换每一行中的“hello”字符串为“goodbye”字符串。然后,它输出每一行到标准输出。接下来,它打开文件以追加模式写入“world”字符串。最后,它关闭文件并返回0以表示成功运行程序。