文字列右シフト関数


関数を記述し、charからなる文字列をn個右にシフトさせる役割を果たす.例えば「abcdefghi」n=2の場合、シフト後は「hiabcdefgh」であるべきである.
解析:abcdefghi----abcdefghiabcdefghiなどの文字列を加算します.これにより、右シフト回数が少ない場合を解決することができる.
コードは以下の通りです:
char* rightloopmove(char *p,unsigned int steps,int n)
{

	for(int i=steps,j=0;j<n;i++,j++)
	{
		p[j]=p[i];
	}
	p[n]='\0';
	return p;

}
int main()
{
	char str[]="acdrfhj";
	int num=strlen(str);
	memcpy(str+7,str,7);
	str[14]='\0';
	rightloopmove(str,2,num);
	cout<<str;
	system("pause");
	return 0;	

}
回数が大きい場合、私はまたフォローします.ありがとうございます.