模拟实现strcmp,strstr,strncpy,strncat,memcpy,memmove库函数

1.模拟实现strcmp

2.模拟实现strstr

3.模拟实现strncpy

这里可能要注意的要点是,当复制的字节远大于源字符串,需要用if(num)来进行调整完善。

4,模拟实现strncat

这个代码可能会报错,但结果是对的。不太懂有在看博客大佬可以出来指正下,超级感谢!!

5.模拟实现memcpy

这里要注意memcpy不能用于自身也就是同一个数组的复制,因为会因为覆盖的问题,导致输出结果错误,失去了它原本的功用,如果用于自身需要使用memmove.

6.模拟memmove函数

注意这里要分情况讨论

1)如果是dest < src 的情况用从前向后的的方式不存在数据被覆盖导致的输出错误

2)当src < dest 的地址时,使用从后向前的方式不存在数据覆盖

3)当src的区域和dest 的区域不存在重叠部分无论是使用从前向后还是从后向前都可以

总结,为了写代码方便,我们将3种情况,简化成两种情况

(蓝色剪头表示dest相对src的位置)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值