采用定长顺序存储表示串,编写一个函数,删除串中从下标为i的字符开始,如果第i个字符后没有足够的j个字符,则有几个删除几个(C语言)

1、思想:从i+j开始,将字符向前移动j个字符,然后再计算删除的长度,赋值

2、代码

 

typedef struct {

              char str[maxsize+1];

               int length;

}Str;

void delete(Str &str,int i,int j){

     if(i<str.length&&i>=0&&j>=0){//判断i,j符合条件

        for(k=i+j;k<str.length;k++)//i后有j个元素,符合此判断,移动i+j后的元素,

              str.ch[k-j]=str[k];

     str.length=str.length-(str.length-i<j?str.length-i:j);//更新字符串的长度,如果不够j个元素,则减去i后的元素个数,否则减去j

     str.ch[str.length]="\0";//最为一个数组元素置为“\0”

    }

}

   

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值