strchr是計算機程式語言的一個函式,原型為extern char *strchr(const char *s,char c),可以查找字元串s中首次出現字元c的位置。
基本介紹
- 中文名:strchr
- 類型:概念
- 類別:函式
- 套用:計算機
C語言,PHP語言,參數,函式公式,範例,
C語言
char *strchr(const char* _Str,char _Val)
char *strchr(char* _Str,char _Ch)
頭檔案:#include <string.h>
功能:查找字元串_Str中首次出現字元_Val的位置
返回值:成功則返回要查找字元第一次出現的位置,失敗返回NULL
PHP語言
string strchr(string$haystack, mixed$needle [,bool$before_needle=false])
返回 haystack 字元串從 needle 第一次出現的位置開始到 haystack 結尾的字元串。
Note:
該函式區分大小寫。如果想要不區分大小寫,請使用 strichr()。
Note:
如果你僅僅想確定 needle 是否存在於 haystack 中,請使用速度更快、耗費記憶體更少的 strpos() 函式。
參數
- haystack
- 輸入字元串。
- needle
- 如果 needle 不是一個字元串,那么它將被轉化為整型並且作為字元的序號來使用。
- before_needle
- 若為 TRUE,strstr() 將返回 needle 在 haystack 中的位置之前的部分。
返回: 返回字元串的一部分或者 FALSE(如果未發現 needle)。
例子:
<?php$email='[email protected]';$domain=strchr($email,'@');echo$domain;//列印@example.com$user=strchr($email,'@',true);//從PHP5.3.0起echo$user;//列印name?>
函式公式
實現:
char* strchr(char *s, char c){ while(*s != '\0' && *s != c) { ++s; } return *s==c ? s : NULL;}
範例
舉例1:(在Visual C++ 6.0中運行通過)
#include <string.h>#include <stdio.h>int main(void){ char string[17]; char *ptr,c='r'; strcpy(string,"Thisisastring"); ptr=strchr(string,c); if(ptr) printf("The character %cis at position:%s\n",c,ptr); else printf("The character was not found\n"); return 0;}
運行結果:
The character r is at position: ring
請按任意鍵繼續. . .
舉例2:
// strchr.c#include <stdio.h>#include <string.h>int main(){ char temp[32]; memset(temp,0,sizeof(temp)); strcpy(temp,"Golden Global View"); char *s = temp; char *p,c='v'; p=strchr(s,c); if(p) printf("%s",p); else printf("Not Found!"); return 0;}
運行結果:Not Found!Press any key to continue
舉例3:
#include <stdio.h>#include <string.h>void main(){ char answer[100],*p; printf("Type something:\n"); fgets(answer,sizeof answer,stdin); if((p = strchr(answer,'\n')) != NULL) *p = '\0';//手動將\n位置處的值變為0 printf("You typed \"%s\"\n",answer);}
fgets不會像gets那樣自動地去掉結尾的\n,所以程式中手動將\n位置處的值變為\0,代表輸入的結束。