#include <stdio.h> #include <assert.h> char *my_strstr(const char *str1,const char *str2) { assert(str1); assert(str2); char *p = str1; //记录str1的初始位置 char *s1 = p; //保存str1的开始位置 char *s2 = str2; //记录str2的初始位置 while(*p) { s1 = p; //将str1的起始位置由上一次的起始位置向后加1,由下面的p++计算 while(*s1 && *s2 && *s1 == *s2) //如果不匹配,以后每次比较时,str2都从首元素开始 { s1++; s2++; } if(*s2 == '\0') { return p; } p++; //不匹配,str1由上一次的起始位置向后加1 } return NULL; //整体遍历完没有找到,返回空 } int main() { char *str1 = "abbbcdef"; char *str2 = "bbcd"; char *ret = my_strstr(str1,str2); printf("%s\n",ret); return 0; }
【C语言】 实现strstr
原创
©著作权归作者所有:来自51CTO博客作者Vs吕小布的原创作品,谢绝转载,否则将追究法律责任
上一篇:【C语言】 字符串逆序
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
strstr函数的使用
strstr函数的使用其实就是匹配(比KMP简单)/**匹配l串中是否存
#include ios 串并 -
实现strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个
leetcode 算法 java string substring