[ grabber @ 06.01.2010. 16:27 ] @
Pozdrav, dobio sam zadatak da odradim konverziju unesene recenice u velika slova, koristeci for_each algoritam. Uradio sam pomocu transform, zatim pomocu if provjere, tj "pjeske", ali sa for_each nikako da ga provalim.

sa transform je islo jednostavno:
Code:
transform(recenica.begin(), recenica.end(), recenica.begin(), ::toupper);


sa if i for kombinacijom takodje bez problema, ali sa for_each ne ide.

znam da ide nesto u formatu:

Code:
for_each(recenica.begin(), recenica.end(), ::toupper);


ali na ovu liniju ne javlja gresku, ali i ne prebaci sva slova u velika. gdje griješim?
[ BinaryRuler @ 06.01.2010. 19:18 ] @
Dobro si pozvao funkciju, ali to ne moze da radi jer se vracena vrednost iz funkcije nigde ne sacuva, moras u ovom slucaj da napravis svoju funkciju za toupper npr. ovako:

Code:

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

void myToupper(char &ch)
{
    ch=::toupper(ch);
}


int main()
{
    vector<char>recenica;
    recenica.push_back('s');
    recenica.push_back('k');
    recenica.push_back('y');
    recenica.push_back('d');
    recenica.push_back('i');
    recenica.push_back('v');
    recenica.push_back('e');
    recenica.push_back('r');

    for_each(recenica.begin(), recenica.end(), myToupper);
    
    return 0;
}
[ grabber @ 06.01.2010. 20:24 ] @
Hvala lijepo!