大家好,又見面了,我是你們的朋友全棧君。
strstr(str1,str2) 函數用于判斷字元串str2是否是str1的子串。如果是,則該函數傳回str2在str1中首次出現的位址;否則,傳回NULL。
PHP語言函數
編輯
strstr() 函數搜尋一個字元串在另一個字元串中的第一次出現。
該函數傳回字元串的其餘部分(從比對點)。如果未找到所搜尋的字元串,則傳回 false。
文法
1 | strstr (string,search) |
---|
[1]
參數 | 描述 |
---|---|
string | 必需。規定被搜尋的字元串。 |
search | 必需。規定所搜尋的字元串。 |
提示
注釋:
search若是數字,所搜尋的将是該數字(作為ASCII碼)代表的字元。
注釋:該函數是二進制安全的。
注釋:該函數對大小寫敏感。如需進行大小寫不敏感的搜尋,請使用 stristr()。
執行個體
1 | <?php echo strstr ( "Helloworld!" , "world" );?> |
---|
輸出:
1 | world! |
---|
C語言函數
編輯
包含檔案:
string.h
函數名: strstr
函數原型:
1 | extern char * strstr ( char *str1, const char *str2); |
---|
文法:
1 | * strstr (str1,str2) |
---|
str1: 被查找目标 string expression to search.
str2: 要查找對象 The string expression to find.
傳回值:若str2是str1的子串,則傳回str2在str1的首次出現的位址;如果str2不是str1的子串,則傳回NULL。
例子:
1 2 3 | char str[]= "1234xyz" ; char *str1= strstr (str, "34" ); cout << str1 << endl; |
---|
顯示的是: 34xyz
函數實作
1.Copyright 1990 Software Development Systems, Inc.
1 2 3 4 5 6 7 8 9 10 11 12 | char * strstr ( const char *s1, const char *s2) {
int len2;
if (!(len2= strlen (s2))) //此種情況下s2不能指向空,否則strlen無法測出長度,這條語句錯誤
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
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) { 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
1 2 3 4 5 6 7 8 9 10 11 | 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,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= "GoldenGlobalView" ; 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 6 7 | char *s=”string1onexxxstring2oneyyy”; char *p; p= strstr (s,”yyy”); if (p!=NULL) printf (“%s”,p); else printf ( "notfound\n" ); |
---|
說明:如果直接寫語句p=strstr(s,”one”),找到的是onexxxstring2oneyyy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | char *mystrstr( char *s1, char *s2) { if (*s1==0) { if (*s2) return ( char *)NULL; return ( char *)s1; } while (*s1) { int i=0; while (1) { if (s2[i]==0) return s1; if (s2[i]!=s1[i]) break ; i++; } s1++; } return ( char *)NULL; } |
---|
釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/153021.html原文連結:https://javaforall.cn