C++中反转字符串可通过std::reverse、双指针或反向迭代器实现,分别适用于高效操作、底层理解与保留原串场景。

在C++中,反转字符串是一个常见操作,可以通过标准库中的 reverse 算法快速实现,也可以手动编写逻辑完成。本文将介绍几种常用的字符串反转方法,帮助你灵活应对不同场景。
使用 std::reverse 反转字符串
C++标准库提供了 std::reverse 算法,定义在 gorithm> 头文件中,可以方便地反转容器或字符串内容。
对 std::string 使用 std::reverse 的示例如下:
#include #include #includeint main() {std::string str = "hello";std::reverse(str.begin(), str.end());std::cout << str << std::endl; // 输出: ollehreturn 0;}
说明: str.begin() 指向第一个字符,str.end() 指向末尾的后一个位置,std::reverse 在这两个迭代器之间进行原地反转。
立即学习“C++免费学习笔记(深入)”;
手动实现字符串反转
如果不使用标准算法,也可以通过双指针方式从两端向中间交换字符来实现反转。
#include #includevoid reverseString(std::string& str) {int left = 0;int right = str.length() - 1;while (left < right) {std::swap(str[left], str[right]);left++;right--;}}
int main() {std::string str = "world";reverseString(str);std::cout << str << std::endl; // 输出: dlrowreturn 0;}
这种方法时间复杂度为 O(n/2),空间复杂度为 O(1),适合理解底层原理或在受限环境中使用。
反转C风格字符串(char数组)
对于传统的C风格字符串(以’