写一个函数,模拟strstr()函数,strstr()函数主要将主串中子串,以及以后的字符全部返回。

比如:在abbcdeef中查找bcde,返回bcdeef

思想:

1.遍历整个长串,然后找到与短串相同的位置,并且记录这个位置

2.与短串依次比较,若在后面某个位置不相同了,这时候,将刚记录的长串的位置后移一位继续比较;若一直都相同,则返回刚才记录的位置

3.如果长串遍历都没找到,则返回NULL

#include<stdio.h>#include<stdlib.h>#include<assert.h>char*my_strstr(constchar*dest,constchar*src){assert(*dest);assert(*src);constchar*start=NULL;char*s1=dest;char*s2=src;while(*s1){s1=dest;//标记开始比较的位置s2=src;while((*s1!='\0')&&(*s2!='\0')){if(*s1++==*s2++){;}else{dest++;break;}}if(*s2=='\0'){returndest;//返回长串}}returnNULL;}intmain(){char*str1="abbcdeef";char*str2="bcde";char*ret=my_strstr(str1,str2);printf("%s\n",ret);system("pause");return0;}