#include<assert.h>
char* my_strstr(char* p1, char* p2)
{
assert(p1 != NULL);
assert(p2 != NULL);//保证指针有效性
char* s1 = p1;
char* s2 = p2;
char* cur = p1;
if (*p2 == '\0')
{
return p1;//一个特殊情况
}
while (*cur)//存档点移到最后的时候退出循环
{
s1 = cur;//每次s1从存档点开始尝试
s2 = p2;
while ((*s1 == *s2) && (*s2 != '\0') && (*s1 != '\0'))
{
s1++;
s2++;
}
if (*s2 == '\0')
{
return cur;//找到子串,返回首元素地址
}
cur++;
}
return NULL;//找不到,返回空指针
}
相关文章
- 使用Maven Archetype创建Java项目模板
- 创建并使用maven archetype的随笔
- Windows系统调用架构分析—也谈KiFastCallEntry函数地址的获取
- SqlServer 多表连接、聚合函数、模糊查询、分组查询应用总结(回归基础)
- ubuntu中anaconda创建虚拟环境等相关操作
- 前端PHP入门-015-递归函数-飘过
- oracle删除索引主键的sql语句,sql 高级 (五)(create index(创建索引) drop)
- python 计算概率密度、累计分布、逆函数
- 如何使用python计算概率密度函数
- JavaScript (JS) 函数补充 (含arguments、eval()、四种调用模式)