补全代码,删除字符数组中多个字符

在这里插入代码片输入字符串存在数组char c[30]中,输入m,n,删除下标m开始的n个字符。输出删除后的结果。

#include <stdio.h>
 int main()
 {
     char * c;
     gets(c);
     int len = 0;
     while(*(c+len)) //while循环实现遍历字符串
        len++;

    int m, n;
   scanf("%d%d", &m, &n);

    for(int i=0; i<len-n; i++)   //达到换数的目的, 将n之后的数移动到前面
          *(c+m+i-1) = *(c+n+i);

    //将c+m+len-n-2之后的数删除

    *(c+m+len-n-1) = '\0';





    puts(c);

     return 0;
 }

本程序在oj平台上运行结果为
在这里插入图片描述
生活不易,小刘自闭
希望有人指正

还有一个问题

在这里插入图片描述
如何做到忽略空格,空格位置不读取,且不变

刚才有了一点想法但不对,记录如下

#include <stdio.h>
 int main()
 {
     char * c;
    gets(c);
     int len = 0;
     while(*(c+len)) //while循环实现遍历字符串
        len++;

    int m, n;
   scanf("%d%d", &m, &n);
    int i, j;
    for( i=0, j=0; j<len-n; i++,j++)//达到换数的目的, 将n之后的数移动到前面
    {
        if(*(c+m+i-1) == ' ') //读到空格往后移动一位
            i++;

       else
        *(c+m+i-1) = *(c+n+j);
    }

    //将c+m+len-n-2之后的数删除

    *(c+m+len-n-1) = '\0';





    puts(c);

     return 0;
 }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值