模拟实现strstr函数
写一个函数,模拟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;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。