文字列を逆順に表示する

C++Beginner
オンラインで実践に進む

はじめに

この実験では、与えられた文字列を逆順に表示するための C++ プログラムを書く方法を学びます。C++ で与えられた文字列を逆順にする方法は複数あります。ここでは、自作するカスタムの逆順関数を使う方法と、C++ の組み込み関数 reverse を使う方法の 2 つの異なる方法を検討します。

文字列を逆順にするためのカスタム関数

まず、与えられた文字列を逆順にするカスタム関数を書いてみましょう。この関数は、最初の文字と最後の文字を交換し、次に 2 番目の文字と 2 番目の最後の文字を交換し、これを繰り返していき、文字列全体が逆順になるまで続けます。

reverseStr 関数を作成し、文字列の参照を渡します。これにより、新しい文字列を返すのではなく、元の文字列を変更することができます。この関数には、文字列の両端の文字を交換するための for ループがあり、徐々に内側に向かって進み、文字列全体が逆順になるまで続けます。

#include<iostream>
#include<string>
using namespace std;

void reverseStr(string& str) {
    int n = str.length();
    for (int i = 0; i < n / 2; i++) {
        swap(str[i], str[n - i - 1]);
    }
}

組み込みの'reverse' 関数を使用する

C++ は、<algorithm> ヘッダーファイルにある文字列を逆順にする組み込み関数も提供しています。逆順にする文字列の開始位置と終了位置を渡すことで、reverse() 関数を使用できます。

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main() {
    string str = "hello";
    reverse(str.begin(), str.end());
    cout << str;
    return 0;
}

プログラムのテスト

上記のいずれかの方法を使ってプログラムをテストしましょう。これを行うには、作成した関数または組み込みの reverse() 関数を単に呼び出します。逆順にしたい文字列を引数として関数に渡します。

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

void reverseStr(string& str) {
    int n = str.length();
    for (int i = 0; i < n / 2; i++) {
        swap(str[i], str[n - i - 1]);
    }
}

int main() {
    string myString = "Hello World!"; //逆順にする文字列の定義

    //方法1
    cout << "カスタム関数を使った逆順文字列:\n";
    reverseStr(myString); //文字列を逆順にするためのカスタム関数の呼び出し
    cout << myString << endl;

    //方法2
    cout << "\n組み込みの'reverse' 関数を使った逆順文字列:\n";
    reverse(myString.begin(), myString.end()); //文字列を逆順にするための組み込み関数の呼び出し
    cout << myString << endl;

    return 0;
}

まとめ

この実験では、与えられた文字列を逆順に表示するための C++ プログラムを書く方法を学びました。自作したカスタム関数を使う方法と、C++ の組み込み関数 reverse を使う方法の 2 つの異なる方法を検討しました。また、関数を呼び出すことで両方の方法を使ってプログラムをテストしました。これで、すぐに任意の文字列を逆順にすることができます!