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

metod rfind() klase string???

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

[ Pregleda: 2106 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fidelito_Castro
Fidelito_Castro
Subotica

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



Profil

icon metod rfind() klase string???06.04.2008. u 22:56 - pre 195 meseci
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.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



+7 Profil

icon Re: metod rfind() klase string???06.04.2008. u 23:32 - pre 195 meseci
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;
}

 
Odgovor na temu

Fidelito_Castro
Fidelito_Castro
Subotica

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



Profil

icon Re: metod rfind() klase string???06.04.2008. u 23:44 - pre 195 meseci
Hvala puno i sve najbolje.
 
Odgovor na temu

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

[ Pregleda: 2106 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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