#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void replaceAll(char *s, const char *fromword, const char *toword)
{
char *pos, tmp[100];
int len = strlen(fromword);
int i = 0;
while ((pos = strstr(s, fromword)) != NULL) {
strcpy(tmp, s);
i = pos - s;
s[i] = '\0';
strcat(s, toword);
strcat(s, tmp + i + len);
}
}
void replaceWords(char file[], char fromword[], char toword[]) {
char filetmp[100] = "tmp.txt";
FILE *fp = fopen(file, "r");
FILE *fptmp = fopen(filetmp, "w");
if (fp == NULL || fptmp == NULL) {
printf("Error open file\n");
exit(EXIT_FAILURE);
}
char s[100];
while ((fgets(s, 100, fp)) != NULL) {
replaceAll(s, fromword, toword);
fputs(s, fptmp);
}
fclose(fp);
fclose(fptmp);
remove(file);
rename(filetmp, file);
}
void readFile(char file[]) {
FILE *fp = fopen(file, "r");
char ch;
while ((ch = fgetc(fp)) != EOF)
putchar(ch);
fclose(fp);
}
int main()
{
char file[100] = "d:\\data.txt";
readFile(file);
replaceWords(file, "python", "go");
puts("\n");
readFile(file);
return 0;
}
/*
run:
c cpp csharp python
java python
javascript php
nodjs python
c cpp csharp go
java go
javascript php
nodjs go
*/