您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
写一个函数,模拟strstr()函数,strstr()函数主要将主串中子串,以及以后的字符全部返回。
比如:在abbcdeef中查找bcde,返回bcdeef
思想:
1.遍历整个长串,然后找到与短串相同的位置,并且记录这个位置
2.与短串依次比较,若在后面某个位置不相同了,这时候,将刚记录的长串的位置后移一位继续比较;若一直都相同,则返回刚才记录的位置
3.如果长串遍历都没找到,则返回NULL
#include<stdio.h> #include<stdlib.h> #include<assert.h> 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; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。