模拟实现strstr函数
写一个函数,模拟strstr()函数,strstr()函数主要将主串中子串,以及以后的字符全部返回。
创新互联专注于企业成都全网营销推广、网站重做改版、城中网站定制设计、自适应品牌网站建设、HTML5建站、成都商城网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为城中等各大城市提供网站开发制作服务。
比如:在abbcdeef中查找bcde,返回bcdeef
思想:
1.遍历整个长串,然后找到与短串相同的位置,并且记录这个位置
2.与短串依次比较,若在后面某个位置不相同了,这时候,将刚记录的长串的位置后移一位继续比较;若一直都相同,则返回刚才记录的位置
3.如果长串遍历都没找到,则返回NULL
#include#include #include char *my_strstr(const char *dest, const char *src) { assert(*dest); assert(*src); const char *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') { return dest;//返回长串 } } return NULL; } int main() { char *str1 = "abbcdeef"; char *str2 = "bcde"; char *ret = my_strstr(str1, str2); printf("%s\n", ret); system("pause"); return 0; }
当前标题:模拟实现strstr函数
文章源于:http://myzitong.com/article/pgeeds.html