【函数作用】:判断一个字符串是否为另一个字符串的子串,如果是,则返回第一次出现的首地址。比如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;
}