用C++把字符串旋转一次的操作等价于把字符車的最后一个字符放到第一个字符的前面。例如, "abcdef旋转一次后变为"fabcde". 输入一个字符串,输出字符串旋转k次后的结果。保证k小于字符串的长度。
时间: 2024-10-21 12:05:43 浏览: 13
在C++中,我们可以先将原始字符串复制一份,然后对复制的字符串进行循环移动操作。具体步骤如下:
```cpp
#include <iostream>
#include <string>
using namespace std;
string rotateString(string str, int k) {
// 确保k的范围在0到字符串长度减一之间
k = k % str.length();
// 创建一个新的字符串,用于存储旋转后的结果
string rotatedStr = str.substr(k) + str.substr(0, k);
return rotatedStr;
}
int main() {
string inputStr = "abcdef";
int rotationCount = 1;
string result = rotateString(inputStr, rotationCount);
cout << "After rotating " << rotationCount << " times, the string becomes: " << result << endl;
return 0;
}
```
这个函数首先计算出实际需要旋转的次数(取模运算),然后使用`substr()`函数获取原字符串从第`k`位开始到结尾的部分,再将其与开头的`k`位拼接起来。
阅读全文