transform で行います。
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <string>
using namespace std;
int main (int argc, char **argv)
{
string s("Hello World");
transform (s.begin (), s.end (), s.begin (), toupper);
cout << s << endl;
transform (s.begin (), s.end (), s.begin (), tolower);
cout << s <<endl;
return 0;
}元ネタ