strstr功能:在s1中查找整個s2第一次出現的起始位置,並返回一個指向該位置的指針,若是s2沒有完整的出如今s1中,則返回NULL。ide
#include <stdio.h> #include <assert.h> char *my_strstr(char const *pdest, char const *psrc) { const char *pstr1 = pdest; const char *pstr2 = psrc; const char *ptr = NULL; assert(pdest);//斷言字符串地址非零 assert(psrc); if (*pstr2 == '\0') { return (char *)pstr1; } while (*pstr1 != '\0') { ptr = pstr1; pstr2 = psrc; while (*ptr != '\0' && *pstr2 != '\0' && *ptr == *pstr2) { ptr++; pstr2++; } if (*pstr2 == '\0') { return (char *)pstr1;//將目的地址返回,以即可以鏈式訪問 } pstr1++; } return NULL; } int main() { char *p1 = "abbbcdef"; char *p2 = "bcd"; if (my_strstr(p1,p2) != NULL) printf("%s\n", p1); system("pause"); return 0; }