Rozdział 27 Problem ze zrozumieniem.
Ostatnio zmodyfikowano 2018-02-16 22:57
NiHuShu Temat założony przez niniejszego użytkownika |
Rozdział 27 Problem ze zrozumieniem. » 2018-02-16 22:27:07 Mam problem. Nie do końca rozumiem dlaczego jak mamy do { std::cout << "Fraza zostala odnaleziona na pozycji " << znalezionaPozycja << std::endl; if( znalezionaPozycja >= szukanaFraza.size() ) znalezionaPozycja = tekst.rfind( szukanaFraza, znalezionaPozycja - szukanaFraza.size() ); else znalezionaPozycja = std::string::npos; } while( znalezionaPozycja != std::string::npos );
to do czego służy if( znalezionaPozycja >= szukanaFraza.size() ) Wiem, że bez tego program nie znajdzie kolejnej frazy ale nie rozumiem jak to działa. |
|
YooSy |
» 2018-02-16 22:56:55 Kartka papieru. Rozpisz sobie łańcuch na elementy tablicy i przeanalizuj co się dzieje przy szukaniu frazy. Ten warunek zabezpiecza metodę rfind przed szukaniem poza tablicą, czyli przed wyjściem w ujemne wartości indeksu pozycji startowej. |
|
pekfos |
» 2018-02-16 22:57:07 Wynik tego tamtego odejmowania musi być nieujemny i to zapewnia ten warunek. |
|
« 1 » |