strchr

strchr

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的位置
說明:返回首次出現_Val的位置的指針,返回的地址是被查找字元串指針開始的第一個與Val相同字元的指針,如果Str中不存在Val則返回NULL
返回值:成功則返回要查找字元第一次出現的位置,失敗返回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
  • 若為 TRUEstrstr() 將返回 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,代表輸入的結束。

相關詞條

熱門詞條

聯絡我們