c++字符串翻转函数
时间: 2024-10-13 14:01:49 浏览: 40
在C++中,字符串反转是一个常见的编程练习,可以使用多种方法来实现。以下是三种常见的方法:
1. **迭代法**:通过两个指针分别指向字符串的首尾,然后逐个交换字符直到相遇。
```cpp
#include <string>
std::string reverseString(std::string str) {
int start = 0;
int end = str.length() - 1;
while (start < end) {
std::swap(str[start], str[end]);
start++;
end--;
}
return str;
}
```
2. **递归法**:将字符串分为两部分,一部分是第一个字符到倒数第二个字符,另一部分是最后一个字符,然后递归地对这两部分做同样的操作。
```cpp
std::string reverseStringRecursively(const std::string& str, size_t left, size_t right) {
if (left >= right)
return "";
else {
char temp = str[left];
str[left] = str[right];
str[right] = temp;
return reverseStringRecursively(str, left + 1, right - 1);
}
}
```
3. **标准库提供的算法**:C++17引入了`<algorithm>`头文件中的`reverse()`函数,可以直接调用。
```cpp
#include <algorithm>
std::string reverseStringWithAlgorithm(std::string str) {
std::reverse(str.begin(), str.end());
return str;
}
```
阅读全文