例题详解:
将一个字符串循环右移n位
输入样例:
abcdefghijklmn
10
输出样例:
efghijklmnabcd
#include<stdio.h>
#include<string.h>
int move(char b[],int n,int m);
int main() {
int n,m,i;
char a[50];
printf("请输入字符串:") ;
scanf("%s",a);
n=strlen(a);
printf("请输入右移位数:");
scanf("%d",&m);
if(m>n)m=m%n;
printf("结果为:");
move(a,n,m);
}
int move(char b[],int n,int m) {
int i,j,t=0;
int c[n];
for(i=n-m,j=0; i<n; i++,j++) {
c[j]=b[i];
}
for(i=0; i<n-m; i++) {
c[i+m]=b[i];
}
for(j=0; j<n; j++) {
printf("%c",c[j]);
}
}
运行结果: