1.strstr介绍
char* strstr( const char* str1, const char* str2 );
str1为以'\0'结束的被查找的字符串
str2为以'\0'结束的要查找的字符串
2.如何使用
被查找字符串:"abcdefabcdef"
要查找字符串:"def"
strstr返回值为字符串地址:从被查找的字符串中 第一次出现 要查找的字符串的位置 向后打印
3.strstr的实现
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<string.h>
const char* my_strstr(const char* p1, const char* p2)
{
assert(p1 != NULL);
assert(p2 != NULL);
char* s1 = (char*)p1;
char* s2 = (char*)p2;
char* cur = (char*)p1;
if (*p2 == '\0')
{
return p1;
}
while (*cur)
{
s1 = cur;
s2 = (char*)p2;
while ((*s1 != '\0') && (*s2 != '\0') && (*s1 == *s2))
{
s1++;
s2++;
}
if (*s2 == '\0')
{
return cur;
}
cur++;
}
return NULL;
}
int main()
{
const char* p1 = "aaabcd";
const char* p2 = "abc";
const char* ret = my_strstr(p1, p2);
if (ret == NULL)
printf("子串不存在\n");
else
printf("%s", ret);
return 0;
}