1. ホーム
  2. c++

[解決済み] 文字列が回文であるかどうかを調べる

2022-03-04 02:17:24

質問

ユーザーが文字列を入力すると、入力された文字列が回文であるかどうかをチェックするプログラムを作りたいのですが、どうすればいいですか?

どのように解決するのですか?

文字列を反転して比較するだけです。

string input;

cout << "Please enter a string: ";
cin >> input;

if (input == string(input.rbegin(), input.rend())) {
    cout << input << " is a palindrome";
}

このコンストラクタは string は、開始と終了のイテレータを受け取り、その二つのイテレータの間の文字から文字列を作成します。このため rbegin() は文字列の終端であり、インクリメントすると文字列を逆行するため、作成する文字列には input を逆に追加し、文字列を反転させる。

そして、それを比較するだけで input で、両者が等しければ回文となる。

これは、大文字やスペースを考慮していないので、自分で改良してください。