strstr函数、memcpy函数实现

一、strstr函数

用于在一个字符串中查找另一个字符串

用 ret接收函数返回的值,假如 ret是空指针则说明字符串不存在,ret不为空指针时会向后打印他记录的位置。

函数实现

函数在实现时会遇到两种情况

第一种,比较两个字符串的首字符元素是否相同,不相同s1 向后加一位,直到两个元素相同为止,相同之后再判断后面两个元素是否相同,直到s2 为\0。

第二种,当遇到相同的元素时,函数判断下去,直到后面b 和 c 的元素不相同时,我们需要设置一个变量p来存放b开始时的位置,并将b向后挪一位,直到所有元素相同为止。

1、* s1 、* s2是存放字符串起始位置,用*p 来控制str1的位置来进行比对.

2、while循环中当*p 和 *s1、*s2都为0时,比对就没有意义了,在这些条件的前提下,才能判断*s1 和 *s2是否相等.

3、假如满足循环条件,s1和s2都可以继续++下去,直到*s2++到 \0为止,此时我们可以返回p的地址。当 *s1 != *s2时,我们可以跳出循环让p++,直到找到为止,当循环结束还是没有找到,只能返回空指针了。

二、memcpy函数

又叫内存拷贝函数,把一个数组的内存拷贝到另一个数组去

函数实现

1、考虑到函数的通用性,我们需要把参数都设置为void类型,num是数组字节的大小,ret用来返回dest的起始地址.

2、为了能更好地对元素进行拷贝,我们需要逐个拷贝字节,否则会出现拷贝不准确的情况,所以我们选择用char类型.

3、num作为字节大小,可以用于while循环中做限制条件,做到精准拷贝.

拷贝完的结果如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值