strstr[strstr]

strstr[strstr]
strstr[strstr]
更多義項 ▼ 收起列表 ▲

strstr() 函式搜尋一個字元串在另一個字元串中的第一次出現。該函式返回字元串的其餘部分(從匹配點)。如果未找到所搜尋的字元串,則返回 false。該函式是二進制安全的。

函式解釋

strstr() 函式搜尋一個字元串在另一個字元串中的第一次出現。

該函式返回字元串的其餘部分(從匹配點)。如果未找到所搜尋的字元串,則返回 false。

語法

strstr(string,search)

參數

描述

string 必需 ,規定被搜尋的字元串
search

必需。規定所搜尋的字元串。如果該參數是數字,則搜尋匹配數字 ASCII 值的字元。

提示

注釋:該函式是二進制安全的。

注釋:該函式對大小寫敏感。如需進行大小寫不敏感的搜尋,請使用 stristr()。

實例

1

<?phpechostrstr("Helloworld!","world");?>

輸出:

1

world!

Cstrstr()

包含檔案:string.h

函式名: strstr

函式原型:extern char *strstr(const char *str1, const char *str2);

語法:* strstr(str1,str2)

str1: 被查找目標string expression to search.

str2: 要查找對象The string expression to find.

返回值:該函式返回str2第一次在str1中的位置,如果沒有找到,返回NULL

The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0.

例子:

1

2

3

charstr[]="1234 xyz ";

char*str1=strstr(str,"34");

cout <

顯示: 34 xyz

函式實現

1.Copyright 1990 Software Development Systems, Inc.

1

2

3

4

5

6

7

8

9

10

11

12

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

{

int len 2;

if(!(len2=strlen(s2)))//此種情況下s2不能指向空,否則strlen無法測出長度,這條語句錯誤

return(char*)s1;

for(;*s1;++s1)

{

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

return(char*)s1;

}

returnNULL;

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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

{

intn;

if(*s2)

{

while (*s1)

{

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

{

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

return(char*)s1;

}

s1++;

}

returnNULL;

}

else

return(char*)s1;

}

3. GCC-4.8.0

1

2

3

4

5

6

7

8

9

10

11

12

char*

strstr(constchar*s1,constchar*s2)

{

constchar*p=s1;

constsize_tlen=strlen(s2);

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

{

if(strncmp(p,s2,len)==0)

return(char*)p;

}

return(0);

}

套用舉例

// strstr.c

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#include<syslib.h>

#include<string.h>

main ()

{

char*s="GoldenG lob alView";

char*l="lob";

char*p;

clrscr();

p=strstr(s,l);

if(p)

printf("%s",p);

else

printf("NotFound!");

getchar();

return0;

}

//功能:從字串” string1 onexxx string2 oneyyy”中尋找”yyy”

(假設xxx和yyy都是一個未知的字串)

1

2

3

4

5

char*s=”string1onexxxstring2oneyyy”;

char*p;

p=strstr(s,”yyy”);

if(p==NULL)printf(“%s”,p);

elseprintf("notfound\n");//此處寫法不對

說明:如果直接寫語句p=strstr(s,”one”),則找到的是onexxx string2 oneyyy,不符合要求所以需採用二次查找法找到目標實現

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

char*mystrstr(char*s1,char*s2)

{

if(*s1==0)

{

if(*s2)return(char*)NULL;

return(char*)s1;

}

while(*s1)

{

inti=0;

while(1)

{

if(s2[i]==0)returns1;

if(s2[i]!=s1[i]) break ;

i++;

}

s1++;

}

return(char*)NULL;

}

相關詞條

熱門詞條

聯絡我們