no, sono sbagliati entrambi per lo stesso errore in fase di compilazione:
/*****/*****/****/***//main.cpp|15|error: no matching function for call to ‘transform(__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, <unresolved overloaded function type>)’|
lo da su questa riga..
codice:
transform(s.begin(), s.end(), s.begin(), toupper);
così è corretta:
codice:
string s = "CIAO MONDO!";
transform( s.begin(),s.end(), s.begin(),(int(*)(int)) tolower );
cout << s;