函数原型:
char * strstr ( const char * str1, const char * str2)
字符串参数必须要const类型。但是要返回的是char*类型,所有返回之前要进行类型转换。
要点:
1、参数判断
2、依次以每个字符为起点构成字符串,判断是否等于str2。
char * strstr ( const char * str1, const char * str2)
{
char *cp = (char *) str1; //注意类型转换
char *s1, *s2;
if ( str1 == NULL || str2 == NULL || *str2 == '\0' )
return (char *)str1;
while (*cp){ //该算法以str2为基准在str1逐字节匹配
s1 = cp; //重新设置起点
s2 = (char *) str2;
while (*s1 && *s2 && *s1 == *s2)
s1++, s2++;
if (*s2 == '\0') //如果s2在和s1比较中提前结束,那么说明匹配成功
return cp;
cp++;
}
return NULL;
}