I'm creating this program that is going to:
1. Read a file
2. Find occurances of a substring within the string read in
3. Replace the occurances of this substring with another string
4. Write to new file
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 512
#define _GNU_SOURCE
int main(int argc, char *argv[])
{
FILE *file, *file2;
char line[MAX], *subLocation;
if (argc != 4)
{
printf("You must enter: ./replace old-string new-string file-name\n");
exit(1);
}
file = fopen(argv[3], "r");
file2 = fopen("temp", "w");
while (fgets(line,sizeof(line),file) != NULL)
{
/* Search for string 1 in string buffer */
if (subLocation == NULL)
{
subLocation = strstr(line, argv[1]);
/* position = subLocation-line */
/* Write the line */
fputs(line, file2);
printf(line); /*Show me the line */
}
/* Close everything */
fclose (file);
fclose (file2);
return 0;
}
I have 1 and 4 down lol. Now I'm pretty new to C...though I have done C++. It's fairly different and I was hoping you guys can shed some light onto some functions I can use for finding and replacing the substring.
I've so far got strstr which will find the first occurance of the string (and i can loop to see if there is more than one). But I'm not sure what I should use to replace it. Any help would be greatly appreciated .
Thanks,
Dan