字符串string反转函数c++
时间: 2024-10-28 22:03:42 浏览: 35
在C++中,你可以使用多种方法来反转字符串。以下是几种常见的实现方式:
1. **使用标准库函数**:
使用`std::reverse()`函数配合迭代器可以轻松地反转字符串。首先将字符串转换为`std::vector<char>`,然后应用`reverse()`。
```cpp
#include <algorithm>
#include <vector>
std::string reverseString(const std::string& str) {
std::vector<char> chars(str.begin(), str.end());
std::reverse(chars.begin(), chars.end());
return std::string(chars.rbegin(), chars.rend());
}
```
2. **循环遍历并交换字符**:
可以通过两个指针从头和尾开始,逐个交换字符直到它们相遇。
```cpp
std::string reverseString(const std::string& str) {
int start = 0;
int end = str.length() - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
return str;
}
```
3. **递归**:
利用递归来处理这个问题,每次递归将第一个和最后一个字符交换,然后对剩下的部分继续操作。
```cpp
std::string reverseString(const std::string& str, int start = 0, int end = -1) {
if (end == -1) {
end = str.length() - 1;
}
if (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
return reverseString(str, start + 1, end - 1);
} else {
return str;
}
}
```
阅读全文