用c++string字符串反转
时间: 2024-09-05 17:00:25 浏览: 51
在 C++ 中,可以使用多种方法来反转 `std::string` 字符串。以下是两种常见的做法:
1. **迭代法**(也称为双指针法):
```cpp
#include <string>
#include <algorithm>
void reverseString(std::string& str) {
int start = 0;
int end = str.length() - 1;
while (start < end) {
std::swap(str[start], str[end]);
start++;
end--;
}
}
```
在这个例子中,我们使用两个指针,一个从字符串开头向后移动,另一个从结尾向前移动,每次交换它们指向的字符,直到相遇。
2. **递归法**:
```cpp
#include <string>
std::string reverseStringRecursively(const std::string& str, size_t start = 0, size_t end = 0) {
if (start >= end) {
return str; // 递归结束条件
} else {
std::string temp = str[start]; // 交换首尾元素
str[start] = str[end];
str[end] = temp;
return reverseStringRecursively(str, start + 1, end - 1); // 继续递归处理剩余部分
}
}
// 调用函数时不需要传入空字符串
std::string reversedStr = reverseStringRecursively("example");
```
这个方法通过将首尾元素互换,然后对剩余部分继续递归,直至整个字符串都翻转过来。
阅读全文