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

简介: strrchr() 函数 在 C++ 中,strrchr() 是用于字符串处理的预定义函数。cstring 是字符串函数所需的头文件

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


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



目录
相关文章
|
2天前
|
C++
C++ 数学函数、头文件及布尔类型详解
C++ 支持数学操作,如`max`和`min`函数找最大值和最小值,以及`&lt;cmath&gt;`库中的`sqrt`、`round`等数学函数。`bool`类型用于布尔逻辑,取值`true`(1)或`false`(0)。布尔表达式结合比较运算符常用于条件判断,例如在`if`语句中检查年龄是否达到投票年龄。在代码示例中,`isCodingFun`和`isFishTasty`变量分别输出1和0。
125 1
|
2天前
|
算法 C++ 容器
C++中模板函数以及类模板的示例(template)
C++中模板函数以及类模板的示例(template)
|
2天前
|
C++ 编译器 程序员
C++ 从零基础到入门(3)—— 函数基础知识
C++ 从零基础到入门(3)—— 函数基础知识
|
2天前
|
自然语言处理 编译器 C语言
【C++】C++ 入门 — 命名空间,输入输出,函数新特性
本文章是我对C++学习的开始,很荣幸与大家一同进步。 首先我先介绍一下C++,C++是上个世纪为了解决软件危机所创立 的一项面向对象的编程语言(OOP思想)。
35 1
【C++】C++ 入门 — 命名空间,输入输出,函数新特性
|
2天前
|
存储 算法 对象存储
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
15 1
|
2天前
|
存储 算法 数据安全/隐私保护
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
7 0
|
2天前
|
存储 自然语言处理 C++
刷题用到的非常有用的函数c++(持续更新)
刷题用到的非常有用的函数c++(持续更新)
18 1
|
2天前
|
存储 编译器 C++
【C++】内存管理和模板基础(new、delete、类及函数模板)
【C++】内存管理和模板基础(new、delete、类及函数模板)
24 1
|
2天前
|
存储 C++
c/c++宏定义(函数)
c/c++宏定义(函数)
|
2天前
|
编译器 C++
【C++进阶】引用 & 函数提高
【C++进阶】引用 & 函数提高