#include <iostream>
using namespace std;
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[10];
//假设steps为2
//把pStr+n即从'h'位置起steps长度的内容即”hi"复制到tmp中
memcpy( tmp, pStr + n, steps );
//把从'a'位置开始的n个字符复制到pStr+steps位置处,即把"abcdefg"往后移n位
memcpy(pStr + steps, pStr, n );
//把tmp里的字符复制到pStr开始处
memcpy(pStr, tmp, steps );
}
int main()
{
char str[]="abcdefghi";
int steps,len;
len=strlen(str);
cout<<"请输入要移动的位数steps:";
cin>>steps;
while(steps<=0 || steps>=len)
{
cout<<"\nsteps 必须大于0且小于 "<<len<<" ! ";
cout<<"\n请输入要移动的位数steps:";
cin>>steps;
}
cout<<"\n移动前:"<<str<<"\n\n";
LoopMove(str,steps);
cout<<"移动后:"<<str<<"\n\n";
return 0;
}