//将某个字符串的后n个字符放到字符串的前面
//思路:三次运用strcpy
#include<iostream>
using namespace std;
#define MAX_LEN 20
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps; //计算出不需要移动的长度
cout<<strlen(pStr)<<endl; //计算源字符串的长度,并且打印出来
char tmp[MAX_LEN];
strcpy ( tmp, pStr + n ); //将不需要移动的部分,放到tmp中去
cout<<tmp<<endl; //为了帮助理解
strcpy ( tmp + steps, pStr);//将源字符串放到temp 第steps个开始的后面
cout<<tmp + steps<<endl;
*( tmp + strlen ( pStr ) ) = '\0'; //将最后一个设置为结束符
strcpy( pStr, tmp ); // 获得最终结果
cout<<pStr<<endl;
}
int main()
{
char str[10]={"abcdefghi"};
//将后面的ghi 放到最前面
LoopMove(str, 3);
return 0;
}