[C语言] 实现strstr函数
程序员文章站
2022-05-02 23:03:49
#include
#include
char *my_strstr(const char *str1,const ch...
#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) { s = p; //将str1的起始位置由上一次的起始位置向后加1,由下面的p++计算 while(*p && *q && *p == *q) //如果不匹配,以后每次比较时,str2都从首元素开始 { p++; q++; } if(*q == '\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; }