命名空间
变体
操作

strrchr

来自 cppreference.cn
< 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 一样)(每个字符都被解释为 unsigned char)。终止空字符被视为字符串的一部分,并且如果搜索 '\0',则可以找到它。
2) 类型泛型函数,等效于 (1)。设 T 为非限定字符对象类型。
  • 如果 str 的类型为 const T*,则返回类型为 const char*
  • 否则,如果 str 的类型为 T*,则返回类型为 char*
  • 否则,行为未定义。
如果为了访问实际函数而抑制了这些泛型函数中每一个的宏定义(例如,如果使用 (strrchr) 或函数指针),则实际函数声明 (1) 变得可见。

如果 str 不是指向空字符结尾的字节字符串的指针,则行为未定义。

内容

[编辑] 参数

str - 指向要分析的空字符结尾的字节字符串的指针
ch - 要搜索的字符

[编辑] 返回值

指向在 str 中找到的字符的指针,如果未找到此类字符,则为空指针。

[编辑] 示例

#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 函数 (页码:待定)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.24.5.5 strrchr 函数 (页码:待定)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.24.5.5 strrchr 函数 (页码:368-369)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.21.5.5 strrchr 函数 (页码:331)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 4.11.5.5 strrchr 函数

[编辑] 参见

查找字符的首次出现
(函数) [编辑]
在一个字符串中查找任何字符在另一个字符串中的首次出现位置
(函数) [编辑]