#include <stdio.h>
#include <stdlib.h> //malloc()函数
typedef unsigned int size_t;
size_t my_strlen(const char * str)
{
const char *sc = NULL;
if(str == NULL)
return 0;
for(sc = str;*sc != '\0';sc++)
{
/* do nothing */
}
return sc - str;
}
/* 因为类型可以为任意,所以形参应为void *
* 相等则返回0,否则不为0
*/
int my_memcmp(const void *s1,const void *s2,size_t count)
{
int res = 0;
const unsigned char *p1 =(const unsigned char *)s1;//注意是unsigned char *
const unsigned char *p2 =(const unsigned char *)s2;
for(p1 ,p2;count > 0;p1++,p2++,count--)
if((res =*p1 - *p2) != 0) //不相当则结束比较
break;
return res;
}
/* 查找字符串s2是否为s1的子串,s1为主串
* 如果是则返回从第一个子串开始的字符串
*/
char * my_strstr(const char *s1,const char *s2)
{
int len1,len2;
len2 = my_strlen(s2); //获取子串s2的长度
if(!len2) //如果子串s2为空则返回s1
return (char *)s1; //先强制类型转换
len1 = my_strlen(s1); //获取
strstr和memcmp函数的实现
最新推荐文章于 2022-09-22 23:27:26 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)