strstr (str1,str2)函数是用来判断字符串str2是否是字符串str1的子字符串的函数,如果是,则返回str2在str1中出现的首字符地址,否则返回null。
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strstr(const char* src, const char* dest)//在src里查找dest
{
assert(src);
assert(dest);
const char *str1 = src;
const char *str2 = dest;
const char *start = NULL;
if (*str2 == '\0')
{
return str1;
}
while (*str1)
{
start = str1;
while (*str1 && *str2 && *str1 == *str2)//如果str1和str2有一个字符相等,则指针指向下一个字符继续判断
{
str1++;
str2++;
}
if(*str2 == '\0')//如果子字符串str2指向结束符(即子字符串str2中所有字符都与源字符串str1的相等,则返回子字符串第一次出现的位置。否则源字符串str1指向下一个位置继续判断
{
return (char *)start;
}
str1 = start + 1;
str2 = dest;
}
return NULL;
}
int main()
{
char str[]= "abcdef";
char str1[] = "bcd";
my_strstr(str, str1);
printf("%s\n", my_strstr(str, str1));
system("pause");
return 0;
}