如何在 c ++ 中使用inbulit函数来反转字符串(不是字符数组)。我需要存储原始副本以及反向的副本以便我可以比较他们是为了平等。请让我知道如何做到这一点
答案 0 :(得分:6)
#include <algorithm>
std::string str1("original");
std::string str2(str1);
std::reverse(str2.begin(), str2.end());
if(str1 == str2)...
获取原始字符串的副本,然后使用std :: reverse来原位反转副本。然后你可以对两者进行比较。
答案 1 :(得分:0)
复制字符串,然后使用算法标题中的反向函数。
std::string original;
// put data in the string
std::string reversed(original);
std::reverse(reversed.begin(), reverse.end());
答案 2 :(得分:0)
std::reverse
操作到位,所以如果你想保留原始字符串和反向字符串,你必须先制作一个副本,然后将其反转:
std::string original("foo");
std::string copy(original);
std::reverse(copy.begin(), copy.end());
答案 3 :(得分: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) {
...
}
答案 4 :(得分:-2)
您不需要保留单独的副本,您可以按以下顺序访问字符串:
string str = "Well Come";
for (unsigned i = str.size() - 1; i >= 0; i++)
cout << str.at(i);