C++ String::rfind() 函数



C++ 的std::string::rfind()函数用于在字符串中查找指定子字符串或字符的最后一次出现位置。它从字符串的末尾向开头搜索,提供反向搜索功能。如果找到子字符串或字符,则返回其位置;否则,返回std::string::npos。

语法

以下是 std::string::rfind() 函数的语法。

size_t rfind (const string& str, size_t pos = npos) const noexcept;
or	
size_t rfind (const char* s, size_t pos = npos) const;
or
size_t rfind (const char* s, size_t pos, size_t n) const;
or
size_t rfind (char c, size_t pos = npos) const noexcept;

参数

  • str − 表示另一个字符串对象。
  • pos − 表示要搜索的字符串中最后一个字符的位置。
  • s − 表示指向字符数组的指针。
  • n − 表示要匹配的字符序列的长度。
  • c − 表示要搜索的单个字符。

返回值

此函数返回最后一次匹配的第一个字符的位置。

示例 1

以下是一个使用 C++ 查找 std::string::find 的示例。

#include <iostream>
#include <string>
#include <cstddef>
int main() {
   std::string str("sairamkrishna mammahe is a one of the tech person in tutorialspoint.com");
   std::string key("mammahe");
   std::size_t found = str.rfind(key);
   if (found != std::string::npos)
      str.replace(found, key.length(), "tech");
   std::cout << str << '\n';
   return 0;
}

输出

让我们编译并运行上述程序,这将产生以下结果:

sairamkrishna tech is a one of the tech person in tutorialspoint.com   

示例 2

在下面的程序中,我们初始化了字符串 x = "Tutorialspoint is a educate company!",并使用 string::rfind() 函数给出了搜索位置 = "educate"。因此,它打印出该单词最后一次匹配的第一个字符的位置。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = "Tutorialspoint is educate company!";
   string position = "educate";
   int i = x.rfind(position);
   cout << i;
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出。

18

示例 3

在下面的程序中,我们初始化了字符串 x,并通过使用 string::rfind() 函数在字符串中声明查找单个字符。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = "Tutorialspoint";
   int i = x.rfind('a');
   cout << i;
   return 0;
}

输出

以下是上述代码的输出。

6                            

示例 4

在下面的程序中,我们初始化了字符串 x,并通过使用 string::find() 函数给出 x.find() 作为参数传递位置。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = "Computer Science Engineering";
   int i = x.rfind("Science", 10);
   cout << i;
   return 0;
}  

输出

以下是上述代码的输出。

9         
string.htm
广告