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



目录
相关文章
|
20天前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
1月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
44 6
|
1月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
21 0
C++ 多线程之线程管理函数
|
1月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
23 3
|
1月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
133 1
|
1月前
|
存储 编译器 C++
C++入门3——类与对象2-1(类的6个默认成员函数)
C++入门3——类与对象2-1(类的6个默认成员函数)
26 1
|
1月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
38 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
2月前
|
编译器 C++
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
22 3
|
3月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
3月前
|
C++
c++常见函数及技巧
C++编程中的一些常见函数和技巧,包括生成随机数的方法、制表技巧、获取数字的个位、十位、百位数的方法、字符串命名技巧、避免代码修改错误的技巧、暂停和等待用户信号的技巧、清屏命令、以及避免编译错误和逻辑错误的建议。
32 6