[C++] Potrzebne wyjasnienie w metodzie find.
Ostatnio zmodyfikowano 2012-10-23 10:29
przedmarancza Temat założony przez niniejszego użytkownika |
[C++] Potrzebne wyjasnienie w metodzie find. » 2012-10-23 10:21:00 Otoz nie rozumiem jednego zapisu z tego całego przykładu, w pętli do while wystepuje cos takiego jak znalezionapozycja+1, co to ma oznaczac? w jaki sposob ta metoda przechodzi w petli do wyszukiwania nastepnego znaku? #include <string> #include <iostream>
void szukajWszystkichZnakow( std::string & tekst, char szukanyZnak ) { size_t znalezionaPozycja = tekst.find( szukanyZnak ); if( znalezionaPozycja == std::string::npos ) { std::cout << "Nie znaleziono znaku w tekscie" << std::endl; return; } do { std::cout << "Znak zostal odnaleziony na pozycji " << znalezionaPozycja << std::endl; znalezionaPozycja = tekst.find( szukanyZnak, znalezionaPozycja + 1 ); } while( znalezionaPozycja != std::string::npos ); }
int main() { std::string naszTekst = "Przyklad z kursu C++ (http://cpp0x.pl)"; szukajWszystkichZnakow( naszTekst, 'z' ); return 0; }
|
|
Mrovqa |
» 2012-10-23 10:29:23 w pętli do while wystepuje cos takiego jak znalezionapozycja+1, co to ma oznaczac? |
Skoro na pozycji znalezionapozycja jest szukany znak, to gdybyś szukał od tej pozycji, to znalazło by Ci ten sam znak - wskutek czego program by się zapętlił. |
|
« 1 » |