C++ String::find_last_of() 函式



C++ 的 std::string::find_last_of() 函式用於在字串中查詢指定字元集中任何字元的最後一次出現位置。它從字串的結尾向開頭搜尋,返回找到的與字元集中任何字元匹配的最後一個字元的索引。如果找不到字元集中的任何字元,則返回 std::string::npos。

語法

以下是 std::string::find_last_of() 函式的語法。

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

引數

  • str − 表示另一個字串物件。
  • pos − 表示要在搜尋中考慮的字串中最後一個字元的位置。
  • s − 表示指向字元陣列的指標。
  • n − 表示要搜尋的字元數量。
  • c − 表示要搜尋的單個字元。

返回值

此函式返回最後一個字元的位置。

示例 1

以下是一個使用 C++ 查詢 std::string::find_last_of 的示例。

#include<iostream>
using namespace std;
int main() {
   string str = "Tutorialspoint";
   cout << "String:" << str << '\n';
   cout << "last occurances = " << str.find_last_of("poi");
   return 0;
}  

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

String:Tutorialspoint
last occurances = 11

示例 2

以下是在指定位置和長度的字串中查詢任何字元最後一次出現的另一個示例。

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "Tutorialspoint";
   string chars = "al";
   size_t pos = str.find_last_of(chars, 10);
   if (pos != string::npos) {
      cout << "Last occurrence is at index " << pos << endl;
   } else {
      cout << "not found in string" << endl;
   }
   return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出。

Last occurrence is at index = 7

示例 3

在這個例子中,我們正在賦值一個空字串和一個字串字元。因此,因為它是一個空字串,所以它不能搜尋或查詢其引數中的最後一個字元。

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "";
   string chars = "al";
   size_t pos = str.find_last_of(chars);
   if (pos != string::npos) {
      cout << "Last occurrence '" << chars << "' is at index " << pos << endl;
   } else {
      cout << " Empty String " << endl;
   }
   return 0;
}

輸出

以下是上述程式碼的輸出。

Empty String                     

示例 4

在這個程式中,我們初始化了一個字串並分配了一個不在字串中的字元。

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "hello world";
   string chars = "xyz";
   size_t pos = str.find_last_of(chars);
   if (pos != string::npos) {
      cout << "Last occurrence '" << chars << "' is at index " << pos << endl;
   } else {
      cout << "Character not found in string (unmatched character)" << endl;
   }
   return 0;
} 

輸出

以下是上述程式碼的輸出。

Character not found in string (unmatched character)   
string.htm
廣告