I don’t usually need to convert string case in C++ so when the need comes up I’ve usually forgotten how to do it and have to Google.
While the Java String class has toLowerCase() and toUpperCase(), C++ std::string does not have such a utility method. Instead, you need to use the std::transform() function. Here’s some example code:
#include <iostream>
#include <string>
#include <utility>
int main(int argc, char* argv[])
{
std::string s1 = "lowertoupper";
std::string s2 = "UPPERTOLOWER";
std::cout << s1 << " : ";
std::transform(s1.begin(), s1.end(), s1.begin(), ::toupper);
std::cout << s1 << std::endl;
std::cout << s2 << " : ";
std::transform(s2.begin(), s2.end(), s2.begin(), ::tolower);
std::cout << s2 << std::endl;
return 0;
}
Produces the following:
$ ./case.exe lowertoupper : LOWERTOUPPER UPPERTOLOWER : uppertolower
Note that while the Java toUpperCase() and toLowerCase() methods do not modify the original string, the std::transform function does.