C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++のSTLを使って文字列全体を大文字・小文字に一括変換する方法

このチュートリアルでは、C++のSTL(標準テンプレートライブラリ)を使用して、文字列全体を大文字または小文字に一括変換する方法について解説します。

C++では、<cctype>ヘッダに含まれる toupper() 関数と tolower() 関数を利用することで、それぞれ大文字・小文字への変換が可能です。さらに、<algorithm>ヘッダの transform() 関数と組み合わせることで、文字列のすべての文字に対してこれらの変換を一度に適用できます。

サンプルコード

#include<bits/stdc++.h>
using namespace std;
int main(){
    // 文字列全体を大文字に変換
    string su = "Tutorials point";
    transform(su.begin(), su.end(), su.begin(), ::toupper);
    cout << su << endl;

    // 文字列全体を小文字に変換
    string sl = "Tutorials Point";
    transform(sl.begin(), sl.end(), sl.begin(), ::tolower);
    cout << sl << endl;

    return 0;
}

実行結果

TUTORIALS POINT
tutorials point

解説

上記のコードでは、transform()関数の第1引数と第2引数に変換対象の範囲(イテレータ)を指定し、第3引数には結果を格納する先頭位置、第4引数には適用する変換関数(::toupper または ::tolower)を渡しています。グローバルスコープの ::toupper / ::tolower を使用することで、名前空間の曖昧さによるエラーを回避できます。

なお、マルチバイト文字(日本語など)はこの方法で正しく変換できない点に注意してください。この手法はASCII文字で構成される文字列に対して有効です。

  1. C++を使って文字列から特定の単語を削除する方法

    本記事では、与えられた文字列から指定した単語を削除する問題を解説します。まず、具体的な例を見てみましょう。入力 : str = remove a given word, word = remove 出力 : a given word 入力 : str = god is everywhere, word = is 出力 : god everywhere解決のためのアプローチ文字列から特定の単語を削除するには、シンプルな手法を用いることができます。手順は以下の通りです。まず、与えられた文字列を2次元配列(マトリックス)形式に変換し、各行に1つの単語を格納します。マトリックス内から対象の単語を検索

  2. C++で文字列の部分文字列の総数を求める方法を解説

    この記事では、与えられた文字列から作成できる空でない部分文字列の個数を求める方法について解説します。入力 : string = "moon" 出力 : 10 説明 : 部分文字列は m、o、o、n、mo、oo、on、moo、oon、moon の 10 個です。 入力 : string = "yellow" 出力 : 21解法のアプローチ文字列の長さを n とします。上の例からも分かるように、考えられるすべての部分文字列の個数を求めるには、長さ n、(n-1)、(n-2)、(n-3)、……2、1 の部分文字列の個数を順に加算していく必要があります。部分文