Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

metod rfind() klase string???

[es] :: C++ programiranje :: C++ za početnike :: metod rfind() klase string???

[ Pregleda: 291 | Odgovora: 2 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fidelito_Castro
Pancevo

Član broj: 143557
Poruke: 76
*.eunet.yu.



Profil

icon metod rfind() klase string???06.04.2008. u 22:56

Zamolio bih nekoga da mi pojasni nacin rada rfind() metode (reverse find) klase string.
Nije mi jasno kako pretrazuje poziciju karaktera u vrednosti objekta klase string.
Evo primer:

Code:

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    string ime;

    int pozicija;
    
    cout<<"Unesite ime: ";
    getline(cin, ime);
    
    cout<<endl;
    pozicija=ime.rfind("a");
    
    if(pozicija == -1)
       cerr<<"Nije pronadjeno slovo \"a\"!!!"<<endl;
    else
        cout<<"Pronadjeno slovo\'a\' na poziciji: "<<pozicija + 1<<endl;
        
    system("PAUSE");
    return EXIT_SUCCESS;
}



Nakon prevodjenja i pokretanja programa, unesem na tastaturi ime Dejan,
pozicija slova a u stringu je na 4 poziciji.Odnosno ista pozicija kao i prilikom koriscenja metode
find().Zar ne bi trebala pozicija da bude 2???
Unapred zahvalan.
06.04.2008. u 22:56 

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 647
91.148.113.*

Sajt: www.eurora3d.com


Profil

icon Re: metod rfind() klase string???06.04.2008. u 23:32
Ove funkcije vracaju poziciju prvog znaka koji se trazi (ako ga ima) u stringu , jedna trazi sa leve a druga sa desne strana.
Brojanje se vrsi sa leva u oba slucaja (prvi znak sa leva je u obe funkcije 1) samo se pretraga vrsi sa leve ili desne strane.
Ti si dobio isti rezultat zato sto je zadata rec imala samo jedno slovo "a".
Probaj ovaj kod ... unesi rec koja ima bar 2 slova "a" i vidi razliku.
Code:

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    string ime;

    int pozicijaL,pozicijaR;

    cout<<"Unesite ime: ";
    getline(cin, ime);

    cout<<endl;
    pozicijaL=ime.find("a");
    pozicijaR=ime.rfind("a");

    if(pozicijaL == -1 || pozicijaR == -1)
       cerr<<"Nije pronadjeno slovo \"a\" !!!"<<endl;
    else{
        cout<<"Pronadjeno slovo sa find() \'a\' na poziciji: "<<pozicijaL + 1<<endl;
        cout<<"Pronadjeno slovo sa rfind() \'a\' na poziciji: "<<pozicijaR + 1<<endl;
    }

    system("PAUSE");
    return EXIT_SUCCESS;
}

06.04.2008. u 23:32 

Fidelito_Castro
Pancevo

Član broj: 143557
Poruke: 76
*.eunet.yu.



Profil

icon Re: metod rfind() klase string???06.04.2008. u 23:44
Hvala puno i sve najbolje.
06.04.2008. u 23:44 

[es] :: C++ programiranje :: C++ za početnike :: metod rfind() klase string???

[ Pregleda: 291 | Odgovora: 2 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.