字符数组-字符循环右移

定义函数,将字符串循环右移n个字符,例如abcde循环右移两位: deabc

函数接口定义:

1

void fun(char *str,int n)

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:#include <stdio.h>

void fun(char *str,int n);

int main()

{

char s[20];

int n;

scanf("%s%d", s,&n);

fun(s,n);

printf("%s", s);

return;}
麻烦讲下思路谢谢

void fun(char *str,int n)
{
    int str_n = strlen(str);
    if (str_n == 0 || n < 0)
        return;
    int st = n % str_n;
    char temp[128];
    memcpy(temp,str+str_n-st,st);
    memcpy(temp+st,str,str_n-st);
    memcpy(str, temp, str_n);
}