Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Potrzebne wyjasnienie w metodzie find.

Ostatnio zmodyfikowano 2012-10-23 10:29
Autor Wiadomość
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?

C/C++
#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;
}
P-67327
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ł.
P-67328
« 1 »
  Strona 1 z 1