26.编写一个函数,作用是把一个char组成的字符串循环右移n个。

比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh”

void loopmove ( char *pstr, int steps )
{
 int n = strlen( pstr ) - steps;
 char tmp[max_len]; 
 memncpy( tmp, pstr + n, steps ); 
 memncpy(pstr + steps, pstr, n ); 
 memncpy(pstr, tmp, steps ); 
} 
#include
#include
void changeshr(char * str,int n)
{
    int length = strlen(str);
    char tmp[length+1];
    strcpy(tmp,str+length-n);
    strcpy(tmp+n,str);
    tmp[length+1]='\0';
    strcpy(str,tmp);
}
int main(void)
{
    char str[30] ="We have seen so much,wo have gone so long";
    changeshr(str,10);
    printf("str:%s\n",str);
    return 0;
}

你可能感兴趣的:(26.编写一个函数,作用是把一个char组成的字符串循环右移n个。)