帮我写一个c语言代码,要求将一个指定文件中某一字符串替换为另一字符串
时间: 2023-03-25 11:03:55 浏览: 143
将已知文件中的指定字符串替换为其他的字符串
好的,我可以回答这个问题。以下是一个示例代码,可以将指定文件中的某一字符串替换为另一字符串:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 1024
int main(int argc, char *argv[]) {
if (argc != 4) {
printf("Usage: %s <filename> <old_string> <new_string>\n", argv[]);
return 1;
}
char *filename = argv[1];
char *old_string = argv[2];
char *new_string = argv[3];
FILE *fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file: %s\n", filename);
return 1;
}
char line[MAX_LINE_LENGTH];
int line_number = ;
int replacement_count = ;
while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) {
line_number++;
char *match = strstr(line, old_string);
while (match != NULL) {
replacement_count++;
int match_offset = match - line;
memmove(match + strlen(new_string), match + strlen(old_string), strlen(match) - strlen(old_string) + 1);
memcpy(match, new_string, strlen(new_string));
match = strstr(match + strlen(new_string), old_string);
}
printf("%s", line);
}
fclose(fp);
printf("Replaced %d occurrences of '%s' with '%s' in %d lines.\n", replacement_count, old_string, new_string, line_number);
return ;
}
```
你可以将 `<filename>` 替换为你要处理的文件名,`<old_string>` 替换为你要替换的字符串,`<new_string>` 替换为你要替换成的字符串。运行程序后,它会输出替换后的文件内容,并告诉你替换了多少次,以及在多少行中进行了替换。
阅读全文