C++中的string类提供了rfind()方法用于在字符串中从后向前查找指定子字符串的位置。可以通过该方法来快速查找字符串中最后一次出现某个子字符串的位置。
例如,假设我们有一个字符串str,我们想要查找字符串中最后一次出现子字符串"abc"的位置,可以使用以下代码:
#include <iostream>
#include <string>
int main() {
std::string str = "abcabcabc";
std::size_t found = str.rfind("abc");
if (found != std::string::npos) {
std::cout << "Last occurrence found at position: " << found << std::endl;
} else {
std::cout << "Substring not found" << std::endl;
}
return 0;
}
在上面的代码中,rfind()方法返回最后一次出现子字符串"abc"的位置,并将其赋值给变量found。如果找到了子字符串,则输出其位置;否则输出"Substring not found"。
需要注意的是,如果未找到指定的子字符串,则rfind()方法会返回std::string::npos,因此我们可以使用这个值来判断是否找到了子字符串。