• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nieczytanie spacji w algorytmie karpa rabina.

Object Storage Arubacloud
0 głosów
309 wizyt
pytanie zadane 3 czerwca 2021 w C i C++ przez Tanormalnie Użytkownik (550 p.)
void karp_rabin(string teskt,string wzorzec, int q)
{
  int m = wzorzec.length();
  int n = teskt.length();
  int p=0,t=0,h=1,d=26;   // p=hash wzorzec, t=hash tekst
  for(int i=0;i<m-1;i++)
  {
    h=(h*d)%q;
    }
  for(int i=0;i<m;i++)
  {
    p=(d*p+wzorzec[i])%q;
    t=(d*t+teskt[i])%q;
  }
  for(int i=0;i<=n-m;i++)
  {
    if(p==t)
    {
        int flag=0;
      for(int j=0;j<m;j++)
      {
        if(teskt[i+j]!=wzorzec[j])
        {
            flag=1;
          break;
        }
      }
      if(flag==0)
      {
        cout<<"Wzorzec znaleziony na: "<<i+1<<endl;
      }
    }
    if(i<n-m)
    {
      t=(d*(t-teskt[i]*h)+teskt[i+m])%q;
      if(t<0)
      {
        t=(t+q);
      }
    }
  }
}

Wie ktoś jak to zmienić, żeby spacje w tekście były uwzględniane, bo na razie po wprowadzeniu tekstu ze spacjami przerywa działanie.

    string wzorzecKR;
    string tekstKR;
    cout << "Wprowadz teskt(KR):";
    cin>>tekstKR;
    cout << "Wprowadz wzorzec(KR):";
    cin>>wzorzecKR;
    karp_rabin(tekstKR,wzorzecKR,97);

 

1 odpowiedź

+1 głos
odpowiedź 3 czerwca 2021 przez Kabuuz Bywalec (2,820 p.)
wybrane 4 czerwca 2021 przez Tanormalnie
 
Najlepsza
Spróbuj funkcji getline zamiast samego przekierowania ze strumienia wejściowego bo z tego co zrozumialem to jak wpisujesz tekst to nie łapie wszystkiego.
komentarz 4 czerwca 2021 przez Tanormalnie Użytkownik (550 p.)
Dzięki! już wszystko działa.

Podobne pytania

0 głosów
2 odpowiedzi 307 wizyt
0 głosów
1 odpowiedź 108 wizyt
pytanie zadane 16 kwietnia 2020 w C i C++ przez Rrafał98 Nowicjusz (240 p.)
0 głosów
1 odpowiedź 147 wizyt

92,693 zapytań

141,606 odpowiedzi

320,106 komentarzy

62,051 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...