📅  最后修改于: 2023-12-03 15:20:20.928000             🧑  作者: Mango
在C++中,std::string::rfind
是一个成员函数,用于在字符串中查找指定子字符串的最后一个出现位置,并返回该位置的索引。该函数是std::string
库中的一个常用函数。
size_t rfind(const std::string& str, size_t pos = npos) const;
size_t rfind(const char* s, size_t pos = npos) const;
size_t rfind(const char* s, size_t pos, size_t n) const;
str
的最后一个出现位置,从索引pos
开始查找。s
的最后一个出现位置,从索引pos
开始查找。n
的字符串s
的最后一个出现位置,从索引pos
开始查找。如果找到了子字符串,则该函数返回最后一个出现位置的索引。如果未找到子字符串,则返回std::string::npos
。
#include <iostream>
#include <string>
int main()
{
std::string str = "Hello, World!";
// 找到子字符串 "lo" 的最后一个出现位置
std::size_t pos1 = str.rfind("lo");
std::cout << "pos1 = " << pos1 << std::endl;
// 从位置 5 开始查找子字符串 "lo" 的最后一个出现位置
std::size_t pos2 = str.rfind("lo", 5);
std::cout << "pos2 = " << pos2 << std::endl;
// 查找字符 "W" 的最后一个出现位置
std::size_t pos3 = str.rfind('W');
std::cout << "pos3 = " << pos3 << std::endl;
return 0;
}
输出:
pos1 = 3
pos2 = 3
pos3 = 7
在上面的示例中,我们定义了一个字符串str
,然后使用rfind
函数查找子字符串和字符的最后一个出现位置,并将结果打印到控制台上。
注意,pos
参数是可选的。如果不指定该参数,则默认从字符串的末尾开始查找。如果找到了子字符串,则返回最后一个出现位置的索引。否则,返回std::string::npos
。