#include<stdio.h>
#include<assert.h>
char* my_strstr(const char* p1,const char* p2)
{
assert(p1 && p2);//检查p1和p2是否为空指针
//创建s1,s2来在p1,p2中进行移动,创建指针tmp来保存开始移动时的s1的位置
char* s1=NULL;
char* s2=NULL;
char* tmp=(char*)p1;
//对p1字符串进行判断是否为空字符
if (!*p1)
{
return (char*)p1;
}
//进行查找循环
while (*tmp)
{
s1 = (char*)tmp;
s2 = (char*)p2;
//开始查找循环
while (*s1&&*s2&&(*s1==*s2))
{
s1++;
s2++;
}
//判断查找循环停止的原因
if (!*s2)
{
return tmp;
}
tmp++;
}
return NULL;
}
int main(void)
{
const char* p1 = {"abbcdefg"};
const char* p2 = { "bcde" };
char* k = my_strstr(p1, p2);
//对my_strtsr函数中所传回的值进行判断
if (k == NULL)
{
printf("不存在\n");
}
else
printf("%s\n", k);
return 0;
}
入门c语言--基于c库函数strstr的实现
原创
©著作权归作者所有:来自51CTO博客作者城南花以开的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【C语言加油站】qsort函数的模拟实现
【C语言加油站】qsort函数的模拟实现本文详细介绍了使用冒泡排序的逻辑模拟实现可以排序任意类型数组的qsort函数……
C语言 qsort排序函数 冒泡排序 回调函数 void*指针 -
[C语言]模拟实现C语言库函数atof
题目:模拟实现C语言库函数atof思路:1.要记录小数点后面的位数,遇到小数点后,将coun
#include c语言 功能类 -
[c语言] 模拟实现c语言库函数atoi
题目:模拟实现c语言库函数atoi//使用c语言编写函数,将一个数字字符串转换为对应的数字
#include 库函数 c语言 -
模拟实现库函数strstr
模拟实现库函数strstr 代码如下#include<stdio.h>const char* mystrstr(const char*src
库 函数 i++ 库函数 #include