原型:char *strstr(char *haystack, char *needle);
用法:#include <string.h>
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符'/0')。
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。
C代码实现如下:
#include <stdio.h>
#include <assert.h>
char *myStrstr(const char *str1, const char *str2)
{
char *s1, *s2;
assert((str1 != (char *)0) && (str2 != (char *)0)); //对两指针加非0 断言
if (str1 == str2) //如果两指针指向同一地址,直接返回str1
{
return (char *)str1;
}
while (*str1) //str1用于记录找到子窜的位置
{
s1 = (char *)str1;
s2 = (char *)str2;
//当str2中有字符与str1中的相同并且str1和str2都未至末尾时,循环
while ((*s1 == *s2) && *s1 && *s2)
{
s1++;