C/C++ 中的 strrchr() 函数

249 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

strrchr() 函数 
在 C++ 中,strrchr() 是用于字符串处理的预定义函数。cstring 是字符串函数所需的头文件。
此函数返回指向字符串中最后一次出现的字符的指针。 
我们要查找的最后一次出现的字符作为第二个参数传递给函数,我们必须在其中查找字符的字符串作为第一个参数传递给函数。 
语法 

char *strrchr(const char *str, int c)

这里,str 是字符串,c 是要定位的字符。它作为它的 int 提升传递,但它在内部被转换回 char。 
应用程序 
给定 C++ 中的字符串,我们需要找到最后一次出现的字符,比如“a”。
例子: 

输入:string = '这是一个字符串'
输出:7

输入:string = '我的名字是鲸落'
输出:7

算法 

  1. 在 strchr() 函数中传递给定的字符串并提及您需要指向的字符。 \
  2. 函数返回一个值,打印该值。
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
char str[] = "This is a string";
char * ch = strrchr(str,'a');
cout << ch - str + 1;
return 0;
}

输出:

9

示例:

#include <stdio.h>
#include <string.h>
int main()
{
	char st[] = "juejin";
	char ch = 'j';
	char* val;
	val = strrchr(st, ch);
	printf("最后一个 e 之后的字符串是: %s \n", ch, val);
	char ch2 = 'm';
	val = strrchr(st, ch2);
	printf("最后一个 m 之后的字符串是: %s ", ch2, val);
	return (0);
}

输出: 

最后一个 e 之后的字符串是:in
最后一个 m 之后的字符串是:(null)

实际应用: 由于它在最后一次出现特定字符后返回整个字符串,因此可用于提取字符串的后缀。例如,当我们知道第一个数字时,就知道面额中的整个前导零。下面演示此示例。

#include <stdio.h>
#include <string.h>
int main()
{
	char denom[] = "Rs 10000000";
	printf("The original string is : %s", denom);
	char first = '1';
	char* entire;
	entire = strrchr(denom, first);
	printf("\nThe denomination value is : %s ", entire);
	return (0);
}

输出:

The original string is : Rs 10000000
The denomination value is : 10000000