fork(9) download
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. char thestring [100];
  6. scanf("%s", thestring);
  7.  
  8. int fmatch, pstart, currmatch, l;
  9.  
  10. l=0;
  11.  
  12. while(thestring[l]!='\0')
  13. l++;
  14.  
  15. fmatch=0;
  16. pstart=1;
  17. currmatch=1;
  18. while(currmatch<l)
  19. {
  20.  
  21.  
  22. if(fmatch<pstart)
  23. {
  24. //In the beginning, currmatch = pstart
  25. if (thestring[fmatch]==thestring[currmatch])// Regular comparison when pstart has been set, and pattern is being recognized
  26. {
  27. fmatch++;
  28. currmatch++;
  29. }
  30. else //if(thestring[fmatch]!=thestring[currmatch])
  31. {
  32. fmatch=0;
  33. if(pstart==currmatch)
  34. currmatch++;
  35. pstart=currmatch;
  36. }
  37. }
  38. else
  39. fmatch=0; // Set fmatch to 0 and then check again if current one matches fmatch
  40.  
  41. }
  42.  
  43. if(fmatch==pstart)
  44. printf("true");
  45. else
  46. printf("false");
  47. }
Success #stdin #stdout 0s 3344KB
stdin
aabaabaab
stdout
true