利用指针编程实现一个函数,函数功能是把一个字符串循环右移n个字符位置。例如:“a
时间: 2023-08-21 20:00:50 浏览: 124
这是一个利用指针编程实现字符串循环右移的函数的示例:
```c++
#include <iostream>
using namespace std;
void rightShift(string& str, int n) {
int length = str.length();
if (length <= 1 || n % length == 0) {
return;
}
n %= length;
string temp = str;
string::iterator src = temp.begin();
string::iterator dest = str.begin();
if (n > 0) {
advance(src, length - n);
} else {
advance(src, -n);
}
while (src != temp.end()) {
*dest = *src;
++dest;
++src;
}
src = temp.begin();
while (src != temp.end() - n) {
*dest = *src;
++dest;
++src;
}
str = temp;
}
int main() {
string str = "abcde";
int n = 2;
cout << "原字符串:" << str << endl;
rightShift(str, n);
cout << "循环右移" << n << "个字符后的字符串:" << str << endl;
return 0;
}
```
这个函数通过使用两个指针来实现循环右移。首先根据输入的偏移量,找到字符串中的特定位置,然后将该位置之后的字符移到新的字符串中。接着,将原字符串中的剩余字符也移到新的字符串中,最后将原字符串更新为新的字符串。
在示例中,原字符串为"abcde",执行循环右移2个字符位置后,结果为"deabc"。
阅读全文