题目: 一道填空题:移动字符串内容,传入参数char *a和m,规则如下:将a中字符串的倒数m个字符移到字符串前面,其余依次像右移。例如:ABCDEFGHI,M=3,那么移到之后就是GHIABCDEF。注意不得修改原代码 void fun(char *w, int m) { int i=0; len=strlen(w); if(m>len) m = len; while(__________){ _________________; } w[len-m] = '\0'; } code(C): [plain] view plain copy #include<stdio.h> #include<string.h> void fun(char *w,int m); void main() { char w[30]; int m; printf("请输入一个字符串\n"); gets(w); printf("请输入移动的字符数\n"); scanf("%d",&m); fun(w,m); printf("移动后的结果为%s\n",w); } void fun(char *w,int m) { int i = 0,len = strlen(w); if(m > len) // 此处对于输入的移动字符数超过字符串长度做了处理 m = len; while(len-m > 0 || (m = 0) != 0) //(m=0)!=0的目的是给m赋值为0,并且不进入循环,还满足要求 for(i = 0,w[len] = w[0],++m;i < len;i++) w[i] = w[i+1]; w[len-m] = '\0';