题目:字符串循环右移
要求:
void right_shift_r(const char* src, char* dest, unsigned int n);
将字符串src右移n位,dest为输出结果;
程序:
#include <stdio.h>
#include <string.h>
/* 循环右移 */
void right_shift_r(const char* src, char* dest, unsigned int n)
{
const unsigned int len = strlen(src);
int i = 0;
for(i = 0; i < len; i++)
{
dest[(i+n)%len] = src[i];
}
dest[len] = '\0';
}
/* 测试 */
int main(void)
{
const char* src = "school";
char dest[255] = {0};
printf("src is %s\n", src);
right_shift_r(src,dest,3);
printf("right_shift_r 3: %s\n", dest);
right_shift_r(src,dest,8);
printf("right_shift_r 8: %s\n", dest);
return 0;
}