TheRasVa

Задача 7,11

May 17th, 2015
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int string_size(char str[])
  6. {
  7.     int i = 0;
  8.     while (str[i] != '\0')
  9.     {
  10.         i++;
  11.     }
  12.     return i;
  13. }
  14.  
  15. int string_search(char str1[], char str2[])
  16. {
  17.     int k1 = string_size(str1), k2 = string_size(str2), u = 0, b1 = 0, b2 = 0;
  18.     while (u <= (k1 - k2 + 1))
  19.     {
  20.         while (b2 < k2)
  21.         {
  22.             if (str2[b2] != str1[b1])
  23.             {
  24.                 break;
  25.             }
  26.             else
  27.             {
  28.                 b1++;
  29.                 b2++;
  30.             }
  31.         }
  32.         if (b2 == k2)
  33.         {
  34.             return u;
  35.         }
  36.         u++;
  37.         b1 = u;
  38.     }
  39.     return -1;
  40. }
  41.  
  42. int main()
  43. {
  44.     char str1[100];
  45.     char str2[100];
  46.     setlocale(LC_ALL, "russian");
  47.     system("color 0A");
  48.  
  49.     cout << "Введите исходную строку: ";
  50.     cin >> str1;
  51.     cout << "Введите строку для поиска: ";
  52.     cin >> str2;
  53.     int result = string_search(str1, str2);
  54.     if (result >= 0)
  55.     {
  56.         cout << "Строка \"" << str2 << "\" начинается с " << result + 1 << " символа строки \"" << str1 << "\" (С символа " << str1[result] << " )" << endl;
  57.     }
  58.     else
  59.     {
  60.         cout << "Строка \"" << str2 << "\" не обнаружена в строке \"" << str1 << "\". Epic fail.";
  61.     }
  62.  
  63.     system("pause");
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment