2.5.c 971 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int findxiny(char[],char[]);
  4. #define MAGIC_BIG 1024
  5. int main ()
  6. {
  7. char s[MAGIC_BIG];
  8. char s2[MAGIC_BIG];
  9. for (int i=0; i<MAGIC_BIG; i++)
  10. s[i]=s2[i]='\0';
  11. printf("string 1 : ?>");
  12. char in='1';
  13. int i =0;
  14. while ((in!=EOF) && (in != '\n'))
  15. {
  16. in=s[i]=getchar();
  17. i++;
  18. if (i>MAGIC_BIG)
  19. {
  20. printf("\n string too big \n");
  21. return -1;
  22. }
  23. }
  24. printf("string 2 : ?>");
  25. i=0;
  26. in = '1';
  27. while ((in!=EOF) && (in != '\n'))
  28. {
  29. in=s2[i]=getchar();
  30. i++;
  31. if (i>MAGIC_BIG)
  32. {
  33. printf("\n delim string too big \n");
  34. return -1;
  35. }
  36. }
  37. printf("location %d : ", findxiny(s2,s));
  38. return (0);
  39. }
  40. /** goners MUST BE a null terminated string*/
  41. int findxiny(char y[], char x[])
  42. {
  43. for (int i=0; x[i]!='\0'; i++)
  44. {
  45. int bm=0;
  46. int j =0;
  47. while(bm==0)
  48. {
  49. if (x[i]!=y[j])
  50. bm=1;
  51. if (x[i]==y[j])
  52. j++;
  53. if(y[j]=='\0')
  54. return i;
  55. }
  56. }
  57. return -1;
  58. }