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
廣告