Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,880 questions

51,806 answers

573 users

How to find and replace all occurrences of a word in text file with C

1 Answer

0 votes
#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
       
*/

 



answered Jul 9, 2020 by avibootz

Related questions

...