字符串右移

 将字符串右循环移位  如循环右移两位  abcdefghi-->hiabcdefg

 方法:三步翻转法

#include<stdio.h>
#include<string.h>
#include<assert.h>
void reverse(char *start,char *end)
{
	assert(start);
	assert(end);
	while(start<end)
	{
		char temp=*start;
		*start=*end;
		*end=temp;
		start++;
		end--;
	}
}
void RightLoopMove(char *pstr,unsigned short steps)
{
	int len=strlen(pstr);
	assert(pstr);	
	reverse(pstr+len-steps,pstr+len-1);
	reverse(pstr,pstr+len-steps-1);
	reverse(pstr,pstr+len-1);
}
int main()
{
	char arr[]="abcdefghi";
	unsigned short n=0;
	printf("请输入你需要右移的位数\n");
	scanf("%u",&n);
	RightLoopMove(arr,n);
	printf("%s\n",arr);
	return 0;
}


你可能感兴趣的:(移位)