Chinaunix首页 | 论坛 | 博客
  • 博客访问: 316572
  • 博文数量: 51
  • 博客积分: 1975
  • 博客等级: 上尉
  • 技术积分: 645
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-17 19:07
文章分类

全部博文(51)

文章存档

2011年(8)

2010年(43)

分类: LINUX

2010-05-20 10:13:08

char *strstr(char *haystack, char *needle)   
{
    int i, j;
    for( i=0; i
        for( j=0; 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  {  
  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;
}
 
阅读(3082) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~