Write a C program to replace a word in a file.
#include <stdio.h>
#include <string.h>
#define MAX 256
int main() {
FILE *fp1, *fp2;
char word[MAX], fname[MAX];
char string[MAX], replace[MAX];
char temp[] = "temp.txt", *ptr1, *ptr2;
/* get the input file from the user */
printf("Enter your input file name:");
fgets(fname, MAX, stdin);
fname[strlen(fname) - 1] = '\0';
/* get the word to delete from the user */
printf("Enter the word to be replaced:");
scanf("%s", word);
/* get the word to replace */
printf("Enter your replace word:");
scanf("%s", replace);
/* open input file in read mode */
fp1 = fopen(fname, "r");
/* error handling */
if (!fp1) {
printf("Unable to open the input file!!\n");
return 0;
}
#include <string.h>
#define MAX 256
int main() {
FILE *fp1, *fp2;
char word[MAX], fname[MAX];
char string[MAX], replace[MAX];
char temp[] = "temp.txt", *ptr1, *ptr2;
/* get the input file from the user */
printf("Enter your input file name:");
fgets(fname, MAX, stdin);
fname[strlen(fname) - 1] = '\0';
/* get the word to delete from the user */
printf("Enter the word to be replaced:");
scanf("%s", word);
/* get the word to replace */
printf("Enter your replace word:");
scanf("%s", replace);
/* open input file in read mode */
fp1 = fopen(fname, "r");
/* error handling */
if (!fp1) {
printf("Unable to open the input file!!\n");
return 0;
}
/* open temporary file in write mode */
fp2 = fopen(temp, "w");
/* error handling */
if (!fp2) {
printf("Unable to open temporary file!!\n");
return 0;
}
/* delete the given word from the file */
while (!feof(fp1)) {
strcpy(string, "\0");
/* read line by line from the input file */
fgets(string, MAX, fp1);
/*
* check whether the word to delete is
* present in the current scanned line
*/
if (strstr(string, word)) {
ptr2 = string;
while (ptr1 = strstr(ptr2, word)) {
/*
* letters present before
* before the word to be replaced
*/
while (ptr2 != ptr1) {
fputc(*ptr2, fp2);
ptr2++;
}
/* skip the word to be replaced */
ptr1 = ptr1 + strlen(word);
fprintf(fp2, "%s", replace);
ptr2 = ptr1;
}
/* characters present after the word to be replaced */
while (*ptr2 != '\0') {
fputc(*ptr2, fp2);
ptr2++;
}
} else {
/*
* current scanned line doesn't
* have the word that need to be replaced
*/
fputs(string, fp2);
}
}
/* close the opened files */
fclose(fp1);
fclose(fp2);
/* remove the input file */
remove(fname);
/* rename temporary file name to input file name */
rename(temp, fname);
return 0;
}
Output:
jp@jp-VirtualBox:~/$ cat data.txt
The moment You have realized God sitting
in the temple of every human body, the
moment You stand in reverence before every
human being and see God in him - that
moment You am free from bondage, everything that
binds vanishes, and You am free.
-Swami Vivekanada
jp@jp-VirtualBox:~/$ ./a.out
Enter your input file name: data.txt
Enter the word to be replaced: You
Enter your replace word: I
jp@jp-VirtualBox:~/$ cat data.txt
The moment I have realized God sitting
in the temple of every human body, the
moment I stand in reverence before every
human being and see God in him - that
moment I am free from bondage, everything that
binds vanishes, and I am free.
-Swami Vivekanada
The moment You have realized God sitting
in the temple of every human body, the
moment You stand in reverence before every
human being and see God in him - that
moment You am free from bondage, everything that
binds vanishes, and You am free.
-Swami Vivekanada
jp@jp-VirtualBox:~/$ ./a.out
Enter your input file name: data.txt
Enter the word to be replaced: You
Enter your replace word: I
jp@jp-VirtualBox:~/$ cat data.txt
The moment I have realized God sitting
in the temple of every human body, the
moment I stand in reverence before every
human being and see God in him - that
moment I am free from bondage, everything that
binds vanishes, and I am free.
-Swami Vivekanada
SEE ALSO
- c program to write a string into a file
- c program to read numbers from a file and write even, odd and prime numbers in separate files
- c program to create a file and store "hello world" in it
- c program to read the contents of the given file
- c program to delete all blank lines in a file
- c program to check whether a directory exists or not
- c program to check whether a file exists or not
- c program to copy a file from one location to another
- c program to create, read, edit and close a file
- c program to create a file with input content
- c program to read a file line by line
- c program to compare two files character by character
- c program to concatenate two files
- c program to convert lowercase characters in a file to uppercase
- c program to convert uppercase characters in a file to lowercase
- c program to list all files in a directory
- c program to list all files in a directory recursively
- c program to append data into a file
- c program to count number of lines in a file
- c program to delete a file or directory
- c program to print the source code of itself as output
- c program to convert the contents in a file from lowercase to uppercase and vice versa
- c program to merge two files
- c program to move a file to different location
- c program to replace articles with space in a text file
- c program to print the words in a file starting with the given character
- c program to delete given word in a file
- c program to replace a word in a file
- c program to merge alternate lines from two files
- c program to remove numbers in a file
- c program to check end of file
- c program to compare two files line by line
- c program to delete specific line from a file
- c program to replace specific line in a file
- c program to take input from a file
- c program to delete a record from a file
- c program to find the number of character, words and lines in a file
- c program to sort characters in each words of a file
- c program to convert text file to binary
- c program to split a file to multiple files
- c program to find the file type, permission, size and last modification date of the given file
- c program to encrypt and decrypt contents of a file
- c program to eliminate comments from a file
Thanks for sharing this blog ! Nice blog
ReplyDeleteBest Search and Replace Software