c语言:有如下内容txt文件 HellHelloHELLOsexHello 查找该文件中所有Hello并替换为* Hell****HELLOsex*****
时间: 2023-08-27 19:06:46 浏览: 160
以下是一种可能的解法:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char filename[] = "example.txt";
char buffer[MAX_LEN];
char* hello = "Hello";
char* replace = "****";
FILE* fp;
fp = fopen(filename, "r+");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return 1;
}
while (fgets(buffer, MAX_LEN, fp)) {
char* pos = buffer;
while ((pos = strstr(pos, hello)) != NULL) {
fseek(fp, pos - buffer, SEEK_CUR);
fputs(replace, fp);
pos += strlen(hello);
}
}
fclose(fp);
return 0;
}
```
首先定义了要读取的文件名、读取的缓冲区大小、要查找的字符串 `Hello` 和替换的字符串 `****`。
然后打开文件,并进行读取和替换操作。使用 `fgets()` 函数每次读取一行内容到缓冲区 `buffer` 中。使用 `strstr()` 函数查找缓冲区中的 `Hello` 字符串,并用 `fseek()` 和 `fputs()` 函数进行替换。注意,由于 `fputs()` 函数会覆盖之前的内容,因此需要使用 `fseek()` 函数将文件指针移到当前字符串的位置。
阅读全文