fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. char* insert(char *src, char *s, char *dst)
  6. {
  7. char *t = strdup(src + strlen(s));
  8. strcpy(src, dst);
  9. strcat(src, t);
  10. free(t);
  11. return src;
  12. }
  13.  
  14. int main(void)
  15. {
  16. char s[BUFSIZ] = "Hello, world, Hello";
  17. char *s1 = "Hi";
  18. char *s2 = "Hello";
  19.  
  20. printf("%s\n", s);
  21.  
  22. for (char *ptr = strstr(s, s2); ptr; ptr = strstr(ptr + 1, s2))
  23. insert(ptr, s2, s1);
  24.  
  25. printf("%s\n", s);
  26.  
  27. for (char *ptr = strstr(s, s1); ptr; ptr = strstr(ptr + 1, s1))
  28. insert(ptr, s1, s2);
  29.  
  30. printf("%s\n", s);
  31.  
  32. for (char *ptr = strstr(s, s2); ptr; ptr = strstr(ptr + 1, s2))
  33. insert(ptr, s2, s2);
  34.  
  35. printf("%s\n", s);
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0.02s 2812KB
stdin
Standard input is empty
stdout
Hello, world, Hello
Hi, world, Hi
Hello, world, Hello
Hello, world, Hello