关于strstr函数和字符串中有另一个字符串的两个问题,分全送哈
问题1:这是strstr函数的原型,求解是什么如何理解,算法是什么理解的?(strstr函数 功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。 返回值:返回该位置的指针,如找不到,返回空指针。)char *strstr(const char *s1, const char *s2)
{
int n;
if (*s2)
{
while (*s1)
{
for (n=0; *(s1 + n) == *(s2 + n); n++)
{
if (!*(s2 + n + 1))
return (char *)s1;
}
s1++;
}
return NULL;
}
else return (char *)s1;
}
问题2:如果字符串str1包含字符串str2,返回1,
这是百度里面有个人写的函数,求解算法是什么理解的。算法是怎么理解的,如还有关于此问更好的算法,求跟帖
int string_search(char str1[], char str2[])
{
int i,j;
int len1,len2;
i=0;
while(str1[i++]!='\0')
{
len1=i;
}
i=0;
while(str2[i++]!='\0')
{
len2=i;
}
i=0;
while(i<=len1-len2)
{
j=0;
while(str1[i+j] == str2[j] && j<len2)
{
if(j == len2-1) return 1;
j++;
}
i++;
}
return 0;
}
[ 本帖最后由 a271885843 于 2012-1-8 22:11 编辑 ]