Mógłby ktoś mi pomóc rozgryźć jak zrobić zadanie z egzaminu?
Mam dany taki kod (poniżej) i mam tylko uzupełnić kod we wskazanych miejscach:
// UZUPEŁNIJ 1
int main()
{
std::string col = "maly tekst";
std::for_each( /*UZUPEŁNIJ 2*/ f() );
std::copy( /*UZUPEŁNIJ 3*/);
getchar();
return 0;
}
// Wyjscie:
// TSKET YLAM
Ok więc to co wypociłem wygląda mniej więcej tak:
// UZUPEŁNIJ 1
#include <iostream>
#include <algorithm>
#include <string>
struct f
{
void operator() ( char* );
std::string txt;
} A;
void f::operator() ( char* c )
{
if( *c >= 'a' && *c <= 'z' )
*c -= 'a' - 'A';
A.txt += *c;
if( *c == '\0' )
{
std::reverse( A.txt.begin(), A.txt.end() );
std::cout << A.txt;
}
}
int main()
{
std::string col = "maly tekst";
std::for_each( /*UZUPEŁNIJ 2*/col.begin(), col.end(), f() );
std::copy( /*UZUPEŁNIJ 3*/A.txt.begin(), A.txt.end(), col.begin());
getchar();
return 0;
}
// Wyjscie:
// TSKET YLAM
Troszeczkę inaczej wyglądał mój kod na kartce egzaminacyjnej ale coś koło tego ( w domu mogę przynajmniej liczyć na kompilator i na dokumentacje w internecie, aczkolwiek dalej nie jestem w stanie tego zrobić ).
EDIT:
Próbowałem też zastosować std::iterator w opratorze(), ale też się nie chciało zrobić.