{
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
}
//#include "stdafx.h"//vc++6.0加上这一行.#include "stdio.h"
#include 氏肆喊"string.h"
int strstr(char *a,char *b){
char *strstr(const char *,const char *)
歼野 int sum=0,ln=strlen(b)
while(a=strstr(a,b)){
sum++
a+=ln
}
return sum
}
int main(void){//测试一下
char *a="123456789012345678901234567890",*b="345"
printf("%d\n",strstr(a,b))
雹余 return 0
}
有一个比较公认的陆绝凳strstr的实早旅现代码宏碧如下:int my_strstr(const char *s1, const char *s2)
int my_strstr(const char *s1, const char *s2)
{
int retcode = -1
int pos = 0
size_t n
if (s1 == NULL)
return -2
if (s2 == NULL)
return -3
n = strlen(s2)
while(*s1)
if(!memcmp(s1++,s2,n))
{
retcode = pos
break
}
else
pos++
return retcode
}
测试程序如下:
int main(int argc, char **argv)
{
int ret
char str1[20] = "Ilikeyou\0"
char str2[20] = "ike\0"
ret = my_strstr(str1, str2)
printf("Results: %d\n", ret)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)