名稱空間
變體
操作

strchr

來自 cppreference.com
< c‎ | string‎ | byte
定義於標頭檔案 <string.h>
char* strchr( const char* str, int ch );
(1)
/*QChar*/ *strchr( /*QChar*/ *str, int ch );
(2) (自 C23 起)
1) 在 `str` 指向的以空字元結尾的位元組字串中查詢 `ch` 的第一次出現(在轉換為 `char` 後,如同透過 `(char)ch` )。終止空字元被認為是字串的一部分,可以在搜尋 `'\0'` 時找到。
2) 型別通用函式,等同於 (1)。令 T 為不合格字元物件型別。
  • 如果 `str` 的型別是 `const T*`,則返回型別為 `const char*`。
  • 否則,如果 `str` 的型別為 `T*`,則返回型別為 `char*`。
  • 否則,行為未定義。
如果抑制了這些泛型函式中每個函式的宏定義以訪問實際函式(例如,如果使用了 `(strchr)` 或函式指標),則實際函式宣告 (1) 將可見。

如果 `str` 不是指向以空字元結尾的位元組字串的指標,則行為未定義。

目錄

[編輯] 引數

str - 指向要分析的以空字元結尾的位元組字串的指標
ch - 要搜尋的字元

[編輯] 返回值

指向 `str` 中找到的字元的指標,如果未找到該字元,則為空指標。

[編輯] 示例

#include <stdio.h>
#include <string.h>
 
int main(void)
{
    const char *str = "Try not. Do, or do not. There is no try.";
    char target = 'T';
    const char* result = str;
 
    while((result = strchr(result, target)) != NULL)
    {
        printf("Found '%c' starting at '%s'\n", target, result);
        ++result; // Increment result, otherwise we'll find target at the same location
    }
}

輸出

Found 'T' starting at 'Try not. Do, or do not. There is no try.'
Found 'T' starting at 'There is no try.'

[編輯] 參考

  • C23 標準 (ISO/IEC 9899:2024)
  • 7.24.5.2 strchr 函式 (p: 待定)
  • C17 標準 (ISO/IEC 9899:2018)
  • 7.24.5.2 strchr 函式 (p: 待定)
  • C11 標準 (ISO/IEC 9899:2011)
  • 7.24.5.2 strchr 函式 (p: 367-368)
  • C99 標準 (ISO/IEC 9899:1999)
  • 7.21.5.2 strchr 函式 (p: 330)
  • C89/C90 標準 (ISO/IEC 9899:1990)
  • 4.11.5.2 strchr 函式

[編輯] 另請參閱

在陣列中搜索字元的第一次出現
(函式) [編輯]
查詢字元的最後一次出現
(函式) [編輯]
在一個字串中查詢另一個字串中任意字元的第一個位置
(函式) [編輯]
C++ 文件中的 strchr