串的复习自用

1.串中元素的位序是从1开始不是从0开始,和线性表的表示有所不同。

2.如果定义结构体,其中的char ch[MAXSIZE],这个定义的数组是从0开始

3.求字串长度时(若代码如下

    //字串范围越界
    if(pos+len-1>S.length){
             return false;
    }
    ) pos+len-1可以在最大极限的情况下会遍历出整个字串pos+len会漏一些情况。(可以自己举个例子带入),然后这段代码就是for (int i=pos;i<pos+len;i++){
                                                                Sub.ch[i-pos+1] = S.ch[i];
                                                                Sub.length = len;} 就是将串S中的元素(从字串起始位置开始的)赋值给子串中的元素,让字串从0开始,所以从让i与pos相减。(串SString都是从1开始的)

4.几个表示串的方式

串长的两种表示法:

方案一:用一个额外的变量length来存放串的长度(保留ch[0]);

方案二:用ch[0]充当length;
优点:字符的位序和数组下标相同;

方案三:没有length变量,以字符’\0’表示结尾(对应ASCII码的0);
缺点:需要从头到尾遍历;

方案四——最终使用方案:**ch[0]废弃不用,声明int型变量length来存放串的长度(方案一与方案二的结合)
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值