小文字⇒大文字変換
- char型の変数cは「std::toupper(c)」により大文字に変換できます。
- stringはcharの配列なので、for文を使う or transform関数のいずれかで実装できます。
- transformはこちらの記事を参考に⇒C++ std::transformの使い方 - パープルハット
for文を使う場合
ソースコード
#include <algorithm> #include <iostream> int main() { std::string s1 = "twitter"; std::string s2 = s1; //s1と同じ文字数必要なのでs1をコピーした // for文を使う場合 for (int i = 0; i < s1.size(); i++) { s2[i] = std::toupper(s1[i]); } // 表示 std::cout << "s1 = " << s1 << std::endl; std::cout << "s2 = " << s2 << std::endl; }
実行結果
s1 = twitter s2 = TWITTER
transformを使う場合
- 実行結果は先ほどと同じなため省略
#include <algorithm> #include <iostream> int main() { std::string s1 = "twitter"; std::string s2 = s1; //s1と同じ文字数必要なのでs1をコピーした // transformを使う場合 std::transform( s1.begin(), s1.end(), s2.begin(), //s1.begin()とすればs1を更新できる [](char c) { return std::toupper(c); } ); // 表示 std::cout << "s1 = " << s1 << std::endl; std::cout << "s2 = " << s2 << std::endl; }
大文字⇒小文字変換
- char型の変数cは「std::tolower(c)」により大文字に変換できます。
- 後は大文字と同じように、for文 or transformで文字列に対して適用します。
ソースコード
#include <algorithm> #include <iostream> int main() { std::string s1 = "TOKYO"; std::string s2 = s1; //s1と同じ文字数必要なのでs1をコピーした // transformを使う場合 std::transform( s1.begin(), s1.end(), s2.begin(), //s1.begin()とすればs1を更新できる [](char c) { return std::tolower(c); } ); // 表示 std::cout << "s1 = " << s1 << std::endl; std::cout << "s2 = " << s2 << std::endl; }
実行結果
s1 = TOKYO s2 = tokyo