"как найти в строке заданную подстроку и поставить указатель на нее."


Страницы: 1
Пользователь: wozzz
Сообщений: 8
Статус: Пользователь
Зарегистрирован:
16 декабря 2008, 6:22
Был:20 января 2009, 8:36
wozzz
smsup
Дата: 16 декабря 2008, 7:06 Сообщение № 1
как найти в строке заданную подстроку и поставить указатель на нее.
С использованием функции найти все вхождения подстроки в строке.
Пользователь: wozzz
Сообщений: 8
Статус: Пользователь
Зарегистрирован:
16 декабря 2008, 6:22
Был:20 января 2009, 8:36
wozzz
smsup
Дата: 16 декабря 2008, 7:07 Сообщение № 2
Код на C++
  1. #include
  2. #include
  3. #include
  4. #include
  5. #define HUN 100
  6. char *finder (char *p, char *q)
  7. {
  8. for (; *p!='\0'; p++)
  9. {
  10. int i=0,j=1;
  11. int *t,*y;
  12. t=&i;
  13. y=&j;
  14. for (;q[i]!='\0' && q[i]==p[i]; *t+=(*y));
  15. if (q[i]=='\0')
  16. return p;
  17. }
  18. return NULL;
  19. }
  20. void main ()
  21. {
  22. char A[HUN], *q,*w;
  23. int h;
  24. clrscr();
  25. printf("Enter string(max 100)\n\n");
  26. gets(A);
  27. if(strlen(A)==0||strlen(A)>HUN)
  28. {
  29. printf("\nError: not entered or wrong string\n");
  30. printf("\n \n \n \n \n Press any key to exit");
  31. getch(); exit(0);
  32. }
  33. printf("\nEnter substring (substring<=sting): ");
  34. gets(q);
  35. if(strlen(q)==0)
  36. {
  37. printf("\nError: not entered substring\n");
  38. printf("\n \n \n \n \n Press any key to exit");
  39. getch(); exit(0);
  40. }
  41. if(strlen(q)>strlen(A))
  42. {
  43. printf("Error: substring>string\n");
  44. printf("\n \n \n \n \n Press any key to exit");
  45. getch(); exit(0);
  46. }
  47. else
  48. {
  49. printf("\n");
  50. h=0;
  51. for ( w=finder(A,q);
  52. w!=NULL;
  53. w=finder(w+strlen(q),q),h++)
  54. puts(w);
  55. if(h==0)
  56. {
  57. printf("Not found substring");
  58. printf("\n \n \n \n \n\n Press any key to exit");
  59. getch();
  60. }
  61. else
  62. {
  63. printf("\nFragments of string before ever including substring\n\n");
  64. printf("\n \n \n \n \n\n Press any key to exit");
  65. getch();
  66. }
  67. }
  68. }
  69.  
При использовании обязательна ссылка на http://DMTSoft.ru

Страницы: 1