strstr實(shí)現(xiàn)

函數(shù)實(shí)現(xiàn)

1.Copyright 1990 Software Development Systems, Inc.

char *strstr(const char *s1,const char *s2)

{

 int len2;

 if(!(len2=strlen(s2)))//此種情況下s2不能指向空,否則strlen無(wú)法測(cè)出長(zhǎng)度,這條語(yǔ)句錯(cuò)誤

 ? ? return(char*)s1;

 for(;*s1;++s1)

 {

? ?  if(*s1==*s2 && strncmp(s1,s2,len2)==0)

? ?  return(char*)s1;

 }

 return NULL;

}

2.Copyright 1986 - 1999 IAR Systems. All rights reserved

char *strstr(constchar*s1,constchar*s2)

{

? ? int n;

? ? if(*s2)

? ? {

? ? ? ? while(*s1)

? ? ? ? {

? ? ? ? ? ? for(n=0;*(s1+n)==*(s2+n);n++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if(!*(s2+n+1))

? ? ? ? ? ? ? ? ? ? return(char*)s1;

? ? ? ? ? ? }

? ? ? ? ? ? s1++;

? ? ? ? }

? ? ? ? return NULL;

? ? }

? ? else

? ? ? ? return (char*)s1;

}

3. GCC-4.8.0

char *strstr(const char *s1,const char *s2)

{

? ? const char *p=s1;

? ? const size_tlen=strlen(s2);

? ? for(;(p=strchr(p,*s2))!=0;p++)

? ? {

? ? ? ? if(strncmp(p,s2,size_tlen)==0)

? ? ? ? ? ? return (char*)p;

? ? }

? ? return(0);

}

4. 常用經(jīng)典實(shí)現(xiàn)方法

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))

? ? ? ? ? ? s1++, s2++;


? ? ? ? if (!*s2)

? ? ? ? ? ? return(cp);


? ? ? ? cp++;

? ? }

? ? return(NULL);

}

4的補(bǔ)充


char * strstr ( char *buf, char *sub)

{

? ? if(!*sub)

? ? ? ? return buf;

? ? char *bp, *sp;

? ? while (*buf)

? ? {

? ? ? ? bp = buf;

? ? ? ? sp = sub;

? ? ? ? do

? ? ? ? {

? ? ? ? ? ? if(!*sp)

? ? ? ? ? ? ? ? return buf;

? ? ? ? } while (*bp++ == *sp++);

? ? ? ? buf++;

? ? }

? ? return 0;

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容