strstr的功能是, 在src中查找整个dst第一次出现的起始位置,若找到返回一个指向该位置的指针,没找到返回NULL。如果dst是一个空字符串,函数返回src。代码如下。
#include <stdio.h>
char *myStrstr( const char *src, const char *dst )
{
int nLen = 0;
if ( '\0' == *dst )
{
return ( char * )src;
}
else
{
/**
*** move src pointer to compare, but don't move dst pointer
**/
while ( '\0' != *src )
{
/**
*** find the address in src
**/
while ( *( src + nLen ) == *( dst + nLen ) )
{
if ( '\0' == *( dst + nLen + 1 ) )
{
return ( char * )src;
}
nLen++;
}
nLen = 0; /** clear **/
src++; /** move src **/
}
return NULL;
}
}
int main()
{
char src[] = "Nobody nobody wow,wow w...,cheer up!";
char dst1[] = "cheer";
char dst2[] = "deer";
if ( myStrstr( src, dst1 ) )
{
printf("Found dst1.%s\n", myStrstr( src, dst1 ) );
}
if ( myStrstr( src, dst2 ) )
{
printf("Found dst2.%s\n", myStrstr( src, dst2 ) );
}
return 0;
}