char *strstr(char *, char *)的几个实现方法
时间:2010-05-20 来源:cr858923
char *strstr(char *haystack, char *needle)
{ int i, j; for( i=0; i<strlen(haystack); i++ ) for( j=0; j<strlen(needle); j++ ) if ( haystack[i] != needle[j] ) break; if(i>=strlen(haystack)) return NULL; else return &haystack[i]; } 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL char *str_str(char *haystack, char *needle)
{
char *res=NULL;
int len1=strlen(haystack);
int len2=strlen(needle);
int i,j,n;
if(len2>len1) return res;
n=len1-len2;
for(i=0;i<=n;i++)
{
for(j=0;j<len2;j++)
{
if(haystack[i+j] != needle[j]) break;
}
if(j==len2)
{
res=haystack+i;
break;
}
}
return res;
} int i=0, j=0;
if( strlen(s1) < strlen(s2) ) return null; while( *(s1+i) && *(s2+j) ) { if(*(s1+i)==*(s2+j)) {i++;j++;}
else {i=i-j+1;j=0;}
}
return (j>0)?i-j:null; char *mystrstr ( char *haystack, char *needle) { char *p= haystack; char *p1, *p2; if ( !*needle ) return( (char*)haystack ); while ( *p ) { p1 = p; p2 = (char*)needle; while ( *p1 && *p2 && ( *p1++ == *p2++ ) ); if ( !*p2 ) return (p); p++; } return(NULL); }
char *strstr(char *haystack, char *needle) { char *pChar;
pChar = needle;
int len = strlen(needle);
for(; strchr(haystack,*pChar) != '\0'; haystack++)
{ if ( strncmp(haystack, pChar, len) == 0 ) { return haystack; } } return NULL; }
{ int i, j; for( i=0; i<strlen(haystack); i++ ) for( j=0; j<strlen(needle); j++ ) if ( haystack[i] != needle[j] ) break; if(i>=strlen(haystack)) return NULL; else return &haystack[i]; } 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL char *str_str(char *haystack, char *needle)
{
char *res=NULL;
int len1=strlen(haystack);
int len2=strlen(needle);
int i,j,n;
if(len2>len1) return res;
n=len1-len2;
for(i=0;i<=n;i++)
{
for(j=0;j<len2;j++)
{
if(haystack[i+j] != needle[j]) break;
}
if(j==len2)
{
res=haystack+i;
break;
}
}
return res;
} int i=0, j=0;
if( strlen(s1) < strlen(s2) ) return null; while( *(s1+i) && *(s2+j) ) { if(*(s1+i)==*(s2+j)) {i++;j++;}
else {i=i-j+1;j=0;}
}
return (j>0)?i-j:null; char *mystrstr ( char *haystack, char *needle) { char *p= haystack; char *p1, *p2; if ( !*needle ) return( (char*)haystack ); while ( *p ) { p1 = p; p2 = (char*)needle; while ( *p1 && *p2 && ( *p1++ == *p2++ ) ); if ( !*p2 ) return (p); p++; } return(NULL); }
char *strstr(char *haystack, char *needle) { char *pChar;
pChar = needle;
int len = strlen(needle);
for(; strchr(haystack,*pChar) != '\0'; haystack++)
{ if ( strncmp(haystack, pChar, len) == 0 ) { return haystack; } } return NULL; }
相关阅读 更多 +
排行榜 更多 +