strrchr
是 C 语言标准库中的一个函数,用于在字符串中查找最后一次出现的字符,并返回指向该字符的指针。
概念:
strrchr
函数在给定的字符串中从末尾开始搜索指定的字符,返回一个指向该字符最后一次出现的指针。如果字符在字符串中不存在,则返回 NULL
。
函数原型如下:
char *strrchr(const char *str, int c);
参数说明:
str
:指向要搜索的空终止字符串的指针。c
:要查找的字符(以 int 形式传递,但通常传递字符常量,如 ‘a’)。
返回值:- 成功:返回指向字符最后一次出现的指针。
- 失败:如果字符未出现,则返回
NULL
。
使用案例:
以下是一个使用 strrchr
函数的例子,它查找字符串中最后一次出现的字符 ‘o’ 并打印出该字符及其之后的子字符串。
#include <stdio.h>
#include <string.h>
int main() {const char *str = "Hello World! Hello C!";char to_find = 'o';char *found;// 使用 strrchr 查找最后一次出现的字符 'o'found = strrchr(str, to_find);if (found != NULL) {// 打印从找到的字符开始到字符串末尾的子字符串printf("The last occurrence of '%c' is: '%s'\n", to_find, found);} else {// 如果字符未找到,打印消息printf("Character '%c' not found in the string.\n", to_find);}return 0;
}
在这个例子中,字符串 "Hello World! Hello C!"
中最后一次出现的字符 ‘o’ 是在子字符串 "lo C!"
中。程序将输出:
The last occurrence of 'o' is: 'lo C!'
请注意,strrchr
函数区分大小写,所以在这个例子中,它不会找到大写的 ‘O’。如果需要查找的字符是字符串的终止字符 ‘\0’,strrchr
将返回指向字符串末尾的空字符的指针。