一道填空题:移动字符串内容,,传入参数char *a和m

来源:互联网 发布:objective c编程之道 编辑:程序博客网 时间:2024/06/05 00:29

题目:

一道填空题:移动字符串内容,传入参数char *a和m,规则如下:将a中字符串的倒数m个字符移到字符串前面,其余依次像右移。例如:ABCDEFGHI,M=3,那么移到之后就是GHIABCDEF。注意不得修改原代码

code(C):

#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';  //不要被表象迷惑,刚开始就以为是在中间加了'\0',然后蒙了~}


 


原创粉丝点击