You may also see:
C Program to Replace First Occurrence of a Substring With Another String
C Program to Replace Last Occurrence of a Substring With Another String
Here also, i have written a function which takes three parameters (the main string, the substring to be replaced and the substring to replace with). The function return a string with all the occurrences of the substring replaced with the specified string. The program uses pointer for manipulating the strings. The program is as follows:
#include<stdio.h>
#include<string.h>
char* replaceAll(char* mainstr,char * substr,char* newstr)
{
int lenmain,lensub,i,j,lennew,startindex=-1,limit,c;
lenmain=strlen(mainstr);
lensub=strlen(substr);
lennew=strlen(newstr);
char *result=(char*)malloc(sizeof(char)*(lenmain+200));
for(c=0,i=0;i<lenmain;i++)
{
if(lenmain-i>=lensub&&*(mainstr+i)==*(substr))
{
startindex=i;
for(j=1;j<lensub;j++)
if(*(mainstr+i+j)!=*(substr+j))
{
startindex=-1;
break;
}
if(startindex!=-1)
{
for(j=0;j<lennew;j++,c++)
{
*(result+c)=*(newstr+j);
}
i=i+lensub-1;
}
else
{
*(result+c)=*(mainstr+i);
c++;
}
}
else
{
*(result+c)=*(mainstr+i);
c++;
}
}
*(result+c)='\0';
return result;
}
void main()
{
char a[300],sub[50],news[50];
printf("\nEnter original:");
gets(a);
printf("\nEnter sub string to be replaced:");
gets(sub);
printf("\nEnter new string to replace with:");
gets(news);
printf("\nresult:");
puts(replaceAll(a,sub,news));
}
No comments:
Post a Comment