Program 264 : Replace the Substring with the given String
//Coming Soon
Output:
#include<stdio.h> #include<string.h> main() { int i,j,flag=0,len1,len2,replaceLen,start,end; char str[100],substr[100],replace[20],temp[120]; printf("Enter a string\n"); gets(str); printf("Enter a substring to be replaced with\n"); gets(substr); printf("Enter String to replace\n"); gets(replace); len1=strlen(str); len2=strlen(substr); replaceLen=strlen(replace); strcpy(temp,str); for(i=0;i<=len1-len2;i++) { start=i; for(j=i;j<i+len2;j++) { flag=1; if(str[j]!=substr[j-i]) { flag=0; break; } else{ end=j; } } if(flag==1) break; } if(flag==1) { int k=0; if(len2==replaceLen){ for(i=0;i<len1;i++) { if(i>=start && i<=end) { str[i]=replace[k]; k++; } } } if(replaceLen-len2>0) { for(i=0;i<len1;i++) { if(i>=start && i<=end) { str[i]=replace[k]; k++; } } k=0; int x; //Storing for continuing copy o remaining string in the original one x=end+1; //For adding the remaining string left in replace for(i=0;i<len1+(replaceLen-len2);i++) { if(i<=end) { temp[i]=str[i]; } //from end of the substring to length of extra string in replace if(i>end && i<=end+(replaceLen-len2)) { temp[i]=replace[len2+k]; k++; } if(i>end+(replaceLen-len2)) { temp[i]=str[x++]; } } temp[i]='\0'; strcpy(str,temp); } if(replaceLen-len2<0) { int rem=end+(replaceLen-len2); for(i=0;i<len1;i++) { if(i>=start && i<=rem) { str[i]=replace[k]; k++; } } k=0; int x; //Storing for continuing copy o remaining string in the original one x=end+1; //For adding the remaining string left in replace for(i=0;i<len1+(replaceLen-len2);i++) { if(i<=end) { temp[i]=str[i]; } if(i>end+(replaceLen-len2)) { temp[i]=str[x++]; } } temp[i]='\0'; strcpy(str,temp); } printf("String After replacing is\n%s\n",str); } else { printf("Entered Substring not Found\n"); } }Explanation:
//Coming Soon
Output: