📅  最后修改于: 2023-12-03 15:35:09.362000             🧑  作者: Mango
std::string::rfind
是 C++ STL 中的一个成员函数,用于查找字符串中最后一个匹配子字符串的位置。
函数签名如下:
size_t rfind (const string& str, size_t pos = npos) const noexcept;
其中,参数 str
是要查找的子字符串,参数 pos
是要开始查找的位置,其默认值为 npos
,表示从字符串末尾开始往前查找。
函数返回值为一个 size_t
类型的整数,表示子字符串在原字符串中的位置,如果找不到则返回 string::npos
(一个 static const
的 size_t
类型的变量,值为 -1)。
下面是一个例子,展示如何使用 std::string::rfind
。
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello world";
string sub_str = "world";
size_t rfind_pos = str.rfind(sub_str); // 查找子字符串 "world" 在字符串 "hello world" 中的位置
if (rfind_pos != string::npos) { // 如果找到了
cout << "Found at position " << rfind_pos << endl;
} else { // 如果没找到
cout << "Not found" << endl;
}
return 0;
}
上面的代码中,先定义了一个字符串 str
和一个子字符串 sub_str
。然后使用 std::string::rfind
函数查找子字符串在字符串中的位置,并根据返回值判断是否找到了子字符串。
pos
大于或等于字符串大小,函数会返回 string::npos
。str
的长度为 0,则函数返回字符串的长度(即 str
为空字符串时,返回字符串的最后一个位置)。pos
的值小于 str
的长度,则只考虑 pos
之前的部分。