一、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循环中做限制条件,做到精准拷贝.
拷贝完的结果如下