我正在尝试做回文检查。因此,为了解决这个问题,我想将原始字符串与反向字符串进行比较。但是,如何在不覆盖旧字符串的情况下保存反向字符串?
reverse(myString.begin(), myString.end())将反转我的字符串,但它将替换myString,并且这样做string reversedString = reverse(myString.begin(), myString.end());不起作用。这是我到目前为止的内容:
int main()
{
cout << "Enter a string: ";
string myString;
getline(cin, myString);
cout << endl;
string reversedString = reverse(myString.begin(), myString.end());
cout << reversedString;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
通过使用反向迭代器,创建新的字符串:
string reversedString(myString.rbegin(), myString.rend());
Run Code Online (Sandbox Code Playgroud)
通过使用标准算法和反向迭代器,您可以做更多的事情(因为C ++ 14)
const bool is_palindrome = std::equal(myString.begin(), myString.end(),
myString.rbegin(), myString.rend()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |