C++ string 的倒置
时间: 2025-02-01 18:08:30 浏览: 42
### C++ 中实现字符串倒置的方法
在 C++ 中,可以利用标准库函数 `std::reverse` 来轻松完成字符串的反转操作。下面展示了一个简单的例子来说明这一过程[^1]。
```cpp
#include <iostream>
#include <algorithm> // std::reverse 函数所在头文件
#include <string>
void reverseStringExample() {
std::string str = "hello";
std::reverse(str.begin(), str.end());
std::cout << str << std::endl;
}
```
上述代码通过调用 `<algorithm>` 头文件中的 `std::reverse()` 函数实现了字符串 `"hello"` 的反转,并打印出了结果。这里传入的是字符串起始位置和终止位置的迭代器作为参数传递给 `std::reverse()` 函数,从而达到整个字符串被反转的效果[^2]。
对于更复杂的情况,比如每隔特定数量字符执行部分反转的操作,也可以基于相同原理进行扩展处理。例如,在指定间隔内对子串实施反转逻辑:
```cpp
class Solution {
public:
std::string reverseStr(std::string s, int k) {
for (int i = 0; i < s.size(); i += (2 * k)) {
if (i + k <= s.size()) {
std::reverse(s.begin() + i, s.begin() + i + k);
} else {
std::reverse(s.begin() + i, s.end());
}
}
return s;
}
};
```
这段代码展示了如何每遇到连续 `2k` 长度的部分就对其前半段即长度为 `k` 的子串做一次反转;当剩余未处理部分不足 `2k` 却不少于 `k` 时同样仅翻转前面 `k` 位;而如果剩下的字符数目连 `k` 都不到的话则直接将其整体颠倒过来[^3]。
阅读全文
相关推荐


















