名稱空間
變體
操作

strrchr

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

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

目錄

[編輯] 引數

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

[編輯] 返回值

指向 `str` 中找到的字元的指標,如果未找到此類字元則為 null 指標。

[編輯] 示例

#include <stdio.h>
#include <string.h>
 
int main(void)
{
    char szSomeFileName[] = "foo/bar/foobar.txt";
    char* pLastSlash = strrchr(szSomeFileName, '/');
    char* pszBaseName = pLastSlash ? pLastSlash + 1 : szSomeFileName;
    printf("Base Name: %s", pszBaseName);
}

輸出

Base Name: foobar.txt

[編輯] 參考

  • C23 標準 (ISO/IEC 9899:2024)
  • 7.24.5.5 strrchr 函式 (p: TBD)
  • C17 標準 (ISO/IEC 9899:2018)
  • 7.24.5.5 strrchr 函式 (p: TBD)
  • C11 標準 (ISO/IEC 9899:2011)
  • 7.24.5.5 strrchr 函式 (p: 368-369)
  • C99 標準 (ISO/IEC 9899:1999)
  • 7.21.5.5 strrchr 函式 (p: 331)
  • C89/C90 標準 (ISO/IEC 9899:1990)
  • 4.11.5.5 strrchr 函式

[編輯] 參閱

查詢字元的第一次出現
(函式) [編輯]
在一個字串中查詢另一個字串中任意字元的第一個位置
(函式) [編輯]
C++ 文件 for strrchr