4

C ++でinbulit関数を使用して文字列(文字配列ではない)を逆にする方法。そして、元のコピーと逆のコピーを保存して、それらを比較して同等かどうかを確認する必要があります。これを行う方法を教えてください

4

5 に答える 5

6
#include <algorithm>

std::string str1("original");
std::string str2(str1);
std::reverse(str2.begin(), str2.end());

if(str1 == str2)...

元の文字列のコピーを取得し、 std::reverse を使用してコピーを反転します。次に、2つの比較を行うことができます。

于 2015-02-05T13:49:56.940 に答える
0

std::reverseその場で動作するため、元の文字列と反転した文字列の両方を保持したい場合は、最初にコピーを作成してから反転する必要があります。

std::string original("foo");
std::string copy(original);
std::reverse(copy.begin(), copy.end());
于 2015-02-05T13:49:04.123 に答える
0

reverse()の関数を簡単に使用できます<algorithm>

std::string same("Hello world");
std::string reversed(same);
std::reverse(reversed.begin(),reversed.end());
//To compare them for equality..
if (same == reversed) {
...
}
于 2015-02-05T13:49:48.073 に答える
0

文字列のコピーを作成し、アルゴリズム ヘッダーから逆関数を使用します。

std::string original;
// put data in  the string
std::string reversed(original);
std::reverse(reversed.begin(), reverse.end());
于 2015-02-05T13:48:43.413 に答える