请编写能直接实现strstr()函数功能的代码。 求高手指点一下,谢谢!

请编写能直接实现strstr()函数功能的代码。 求高手指点一下,谢谢!,第1张

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

}

//#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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12341659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存