C 库函数 - strstr()
描述:
strcmp函数,是用来在一个字符串中,查找另一个字符串的。
也就是说,它告诉我们,字符串2是否为字符串1的子集。
它的返回值有2个:
- 是子集,返回母集中,子集的首地址
- 不是子集,返回NULL
声明:
const char * strstr ( const char * str1, const char * str2 );
char * strstr ( char * str1, const char * str2 );
代码实现:
#include <stdio.h>
#include <assert.h>
char* My_strstr(const char* main, const char* part)
{
assert(main && part);
const char* p = main;
const char* str_1 = main;
const char* str_2 = part;
while (*str_1)//目标字符串没有结束,进入循环
{
while (*str_1 == *str_2 && *str_1 != '\0')//2个字符串中,此字符相等,进入循环,比较下一字符
{
str_1++;
str_2++;
}
if (*str_2 == '\0')//子字符串已经结束,比较完毕,返回参数
{
return p;
}
//目标字符串原位置未比对成功,进行下一位比对
p++;
//2个字符串归位
str_1 = p;
str_2 = part;
}
return NULL;
}
int main()
{
char str_1[] = "Hello, this is my strstr";
char str_2[] = "this is my strstr";
char* ret = NULL;
ret = My_strstr(str_1, str_2);
if (ret != NULL)
{
printf("%s\n", ret);
}
else
{
printf("目标字符串中没有此子集\n");
}
return 0;
}