strstr函数实现(C语言)
second60 20180601
strstr 用来字符串查找子串。
顺便说一下, 字符串操作函数是C语言中非常重要的函数,里面包括了指针的精华,同时对学习数据结构,如链表,数组,有非常好的练手方法。同时,知道内部实现,是基础中的基础。所以学习字符串操作函数是深入学C的必经之路。
#include <stdio.h> #include <assert.h> const char* strstr(const char* src, const char* sub) { const char *bp; const char *sp; if(!src || !sub) { return src; } /* 遍历src字符串 */ while(*src) { /* 用来遍历子串 */ bp = src; sp = sub; do { if(!*sp) /*到了sub的结束位置,返回src位置 */ return src; }while(*bp++ == *sp ++); src ++; } return NULL; }
int main() { char p[] = "123456"; char q[] = "23"; char *r = strstr(p,q); printf("r:%s\n", r); getchar(); return 0; }