文字列右シフト関数
関数を記述し、charからなる文字列をn個右にシフトさせる役割を果たす.例えば「abcdefghi」n=2の場合、シフト後は「hiabcdefgh」であるべきである.
解析:abcdefghi----abcdefghiabcdefghiなどの文字列を加算します.これにより、右シフト回数が少ない場合を解決することができる.
コードは以下の通りです:
解析: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;
}
回数が大きい場合、私はまたフォローします.ありがとうございます.