パープルハット

※当サイトではGoogleアドセンス広告を利用しています

C++ stringの大文字⇔小文字変換



小文字⇒大文字変換

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