MeehoweCK

Untitled

Apr 6th, 2023
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int wyszukiwanie_wzorca(string wzorzec, string tekst)
  6. {
  7.     int wzorzec_size = wzorzec.size();
  8.     int tekst_size = tekst.size();
  9.     if(wzorzec_size > tekst_size)
  10.         return 0;       // dłuższy tekst nie może zawierać się w krótszym
  11.  
  12.     int licznik = 0;
  13.  
  14.     for(int i = 0; i <= tekst_size - wzorzec_size; ++i)     // i - numer znaku, na którym wzorzec potencjalnie może się zaczynać
  15.     {
  16.         if(tekst[i] == wzorzec[0])       // czy pierwszy znak wzorca pokrywa się z danym znakiem w tekście
  17.         {
  18.             bool zgodne = true;
  19.             for(int j = 1; j < wzorzec_size; ++j)
  20.             {
  21.                 if(tekst[i + j] != wzorzec[j])      // czy znaki nie są zgodne
  22.                 {
  23.                     zgodne = false;
  24.                     break;
  25.                 }
  26.             }
  27.             if(zgodne)  // cały wzorzec jest zawarty w tekście
  28.                 ++licznik;
  29.         }
  30.     }
  31.     return licznik;
  32. }
  33.  
  34. int main()
  35. {
  36.     string wzorzec, tekst;
  37.     cout << "Podaj tekst: ";
  38.     getline(cin, tekst);
  39.     cout << "Podaj wzorzec: ";
  40.     getline(cin, wzorzec);
  41.     cout << wyszukiwanie_wzorca(wzorzec, tekst) << endl;
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment