数据结构中请用c++帮我实现下面功能:字符串的常规操作 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
时间: 2024-12-08 12:21:11 浏览: 26
字符串操作函数集合,具有各种对字符串操作的函数
在 C++ 中,我们可以使用 `std::string` 类型,并创建一个名为 `rotateString` 的函数来实现这个功能。这里是一个简单的实现示例:
```cpp
#include <iostream>
#include <vector>
// 定义旋转字符串函数
std::string rotateString(const std::string& str, int k) {
// 首先,检查旋转次数是否超出字符串长度
k = k % str.length();
// 创建一个新的字符串,用于存储旋转后的结果
std::string result(str.rbegin(), str.rend()); // 使用反向迭代器从原字符串末尾开始取字符
// 只保留需要的旋转部分
result.resize(k);
result.append(str.substr(0, str.length() - k));
return result;
}
int main() {
std::string input = "abcdefg";
int rotation = 2;
std::cout << "Original string: " << input << std::endl;
std::cout << "Rotated string (by " << rotation << " positions): " << rotateString(input, rotation) << std::endl;
return 0;
}
```
在这个示例中,我们首先计算出实际需要旋转的字符数(即旋转次数除以字符串长度的余数),然后构建新的字符串,先将原字符串的最后k个字符放在前面,再连接剩余未旋转的部分。
阅读全文