如:将字符串循环右移n位,如abcdefg右移两位变成fgabcde
/*****************************************************
copyright (C), 2016-2017, Lighting Studio. Co., Ltd.
Author ChenYangYang Date: 2016/12/26
Description:字符串移位
*****************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void reverse(char *left, char *right)
{
char temp;
while(left < right)
{
temp = *left;
*left = *right;
*right = temp;
left++;
right--;
}
}
void rightmove(char *str, int n)
{
int len = strlen(str);
reverse(str, str + len - n -1);
reverse(str + len - n, str + n -1);
reverse(str, str + len - 1);
}
int main()
{
char str[] = "abcdefg";
rightmove(str,2);
printf("move str is: %s\n",str);
return 0;
}