// 大文字変換、小文字変換には、 // どうも Cで言う ctype.h が必要なようで.. #include <iostream> #include <string> #include <algorithm> #include <cctype> using namespace std; char upper_ch( const char c ) { return static_cast<char>( toupper( c ) ); } string & upper_string( const string &s1, string &s2 ) { s2 = s1; transform( s1.begin(), s1.end(), s2.begin(), upper_ch ); return s2; } char lower_ch( const char c ) { return static_cast<char>( tolower( c ) ); } string & lower_string( const string &s1, string &s2 ) { s2 = s1; transform( s1.begin(), s1.end(), s2.begin(), lower_ch ); return s2; } int main() { string s; upper_string( "fooBAR", s ); cout << "upper : " << s << endl; lower_string( "fooBAR", s ); cout << "lower : " << s << endl; return 0; } /* /* transform() で結構楽にできますが、 /* 大文字/小文字変換って もっと他にスマートなやり方ってないのだろうか? /* 知っていたら教えて下さい。 /**/