【函数作用】:判断一个字符串是否为另一个字符串的子串,如果是,则返回第一次出现的首地址。比如strstr(str,substr)就是判断字符串substr是否是str的子串。如果是,则该函数返回substr在str中首次出现的地址;否则,返回NULL
【函数原型】:在MSDN中看一下strstr函数的原型
【参考代码】:
char* my_strstr(const char *str, const char *substr) { assert(str != NULL); assert(substr != NULL); char *s1; char *s2; char *cur = (char *)str; while (*cur) { s1 = cur;//记录起始地址 s2 = (char *)substr;//记录子串起始地址 while (*s1&&*s2&&(*s1 == *s2)) { s1++; s2++; } if (*s2 == '\0') { return cur; } cur++; } return NULL; }
下边是一个测试程序:
#include<stdio.h> #include<windows.h> #include<assert.h> int main() { char *str1 = "abcdefghhppo"; char *str2 = "def"; char *ret = my_strstr(str1, str2); if (ret == NULL) { printf("不存在\n"); } else { printf("%s\n", ret); } system("pause"); return 0; }