如何使用c++中的inblit 函数来反转字符串(不是字符数组)。我需要存储原始副本以及反转的副本,以便我可以比较它们是否相等。请让我知道如何做到这一点
问问题
34480 次
5 回答
6
#include <algorithm>
std::string str1("original");
std::string str2(str1);
std::reverse(str2.begin(), str2.end());
if(str1 == str2)...
获取原始字符串的副本,然后使用 std::reverse 就地反转副本。然后,您可以对两者进行比较。
于 2015-02-05T13:49:56.940 回答
0
制作字符串的副本,然后使用算法头中的 reverse 函数。
std::string original;
// put data in the string
std::string reversed(original);
std::reverse(reversed.begin(), reverse.end());
于 2015-02-05T13:48:43.413 回答
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 回答
-3
您不需要保留单独的副本,您可以按相反的顺序访问字符串,如下所示:
string str = "Well Come";
for (unsigned i = str.size() - 1; i >= 0; i++)
cout << str.at(i);
于 2015-02-05T13:57:38.503 回答