Namespaces
Variants

strrchr

From cppreference.net
< 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 ) ch 方式转换为 char )的最后一次出现。每个字符被解释为 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 函数 (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018):
  • 7.24.5.5 strrchr 函数 (页: TBD)
  • 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 函数

参见

查找字符的首次出现
(函数)
在一个字符串中查找另一个字符串中任意字符的首个位置
(函数)