Advertisement
Sathvikks8

program2-strings

Jan 27th, 2021
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.26 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include<math.h>
  5. char str[100], pat[100], rep[100];
  6. int slen(char *s)
  7. {
  8.     int length=0;
  9.     while(s[length++]!='\0'){}
  10.     return (length-1);
  11. }
  12. void findAndReplace()
  13. {
  14.     int s, p, r, found=0, i, temp, diff=abs(slen(pat)-slen(rep));
  15.     for(s=0;str[s]!='\0';s++)
  16.     {  
  17.         temp=s;
  18.         for(p=0;pat[p]!='\0';)
  19.         {
  20.             if(str[s]==pat[p])
  21.             {
  22.                 s++;
  23.                 p++;
  24.             }
  25.             else
  26.                 break;
  27.             if(pat[p]=='\0')
  28.             {
  29.                 found=1;
  30.                 if(slen(pat)<slen(rep))
  31.                 {
  32.                     for(s=slen(str);s>=temp;s--)
  33.                         str[s+diff]=str[s];
  34.                     for(s=temp,r=0;rep[r]!='\0';s++,r++)
  35.                         str[s]=rep[r]; 
  36.                 }
  37.                 else if(slen(rep)<slen(pat))
  38.                 {
  39.                     for(s=temp+slen(rep);s<=slen(str)-diff;s++)
  40.                         str[s]=str[s+diff];
  41.                     for(s=temp,r=0;rep[r]!='\0';s++,r++)
  42.                         str[s]=rep[r];
  43.                 }
  44.                 else
  45.                 {
  46.                     for(s=temp,r=0;rep[r]!='\0';s++,r++)
  47.                         str[s]=rep[r];
  48.                 }              
  49.             }
  50.         }
  51.         s=temp;
  52.     }
  53.     if(found)
  54.         printf("\nThe Resultant String is: %s\n",str);
  55.     else
  56.         printf("\nPattern String not found\n");
  57. }
  58. int main()
  59. {
  60.     printf("\nEnter the Main String: ");
  61.     gets(str);
  62.     printf("\nEnter the Pattern String: ");
  63.     gets(pat);
  64.     printf("\nEnter the Replacement String: ");
  65.     gets(rep);
  66.     findAndReplace();
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement