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的位置)
651

被折叠的 条评论
为什么被折叠?



