6-3 字符移动 (12 分)

编写一个函数,函数的功能是移动字符串中的内容。移动的规则如下:把第1到第m个字符,平移到字符串的最后;再把第m+1到最后的字符移动到字符串的前部。变换后的字符串存入b数组中,如果m不在字符串长度范围,原样存入b数组中。

函数接口定义:

 

在这里描述函数接口。例如: void fun(char *pstr,int n,char *b);

裁判测试程序样例:

 

在这里给出函数被调用进行测试的例子。例如: #include <stdio.h> #include <string.h> void fun(char *pstr,int n,char *b); int main() { char str[20],b[20]; int m; gets(str); scanf("%d",&m); fun(str,m,b); printf("%s",b); return 0; } /* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

abcefg
2

输出样例:

在这里给出相应的输出。例如:

cefgab
void fun(char *pstr,int n,char *b)
{
    if(strlen(pstr)<n)
    {
        strcpy(b,pstr);
        return;
    }    
    int i=0;
    while(*(pstr+n+i)!='\0')
    {
        *b=*(pstr+n+i);
        i++;
        b++;
    }
    i=0;
    while(i<n)
    {
        *b=*(pstr+i);
        i++;
        b++;
    }
    *b='\0';
}    

 可以分两步走:第一步先将后几位赋过去(这里是字符串,复制要用到函数),第二步再从第一位赋过去。分别用两个循环,注意还有一个特殊情况就是数字过大,原样复制(可放在最前先判断)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值