[ Fidelito_Castro @ 06.04.2008. 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.
[ Eurora3D Team @ 06.04.2008. 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;
}
[ Fidelito_Castro @ 06.04.2008. 23:44 ] @
Hvala puno i sve najbolje.