没有的话可以自己写一个,网上基本上都能找到相关参考资料:
- //(1)库中的代码如下:
-
- char * strstr ( const char * str1, const char * str2 )
- {
- char *cp = (char *) str1;
- char *s1, *s2;
-
- if ( !*str2 )
- return((char *)str1);
-
- while (*cp)
- {
- s1 = cp;
- s2 = (char *) str2;
-
- while ( *s1 && *s2 && !(*s1-*s2) )/*在c语言中指针与指针相减,得到的是元素的个数*/
- s1++, s2++;
-
- if (!*s2)
- return(cp);
-
- cp++;
- }
-
- return(NULL);
-
- }
-
- //(2)参考代码:
-
- # include <stdio.h>
- char * my_strstr( const char *s1, const char *s2)
- {
- int n=0; //在开始比较字符相等时走的步数
- if (*s2)
- {
- while (*s1)
- {
- if (*(s1 + n) == *(s2 + n))
- {
- if (*(s2 + n + 1) == NULL)
- {
- return (char *)s1;
- }
- n++;
- }
- /* for (n=0; *(s1 + n) == *(s2 + n); n++)
- {
-
- if (*(s2 + n + 1)==NULL)
- return (char *)s1;
- } */
- s1++; //只要第n次不相等时,就进行s1++,直到满足条件时开始返回执行循环语句
- }
- return NULL;
- }
- else
- return NULL;
- }
复制代码
|