str . rfind ( )
时间: 2024-02-23 21:59:26 浏览: 121
`str.rfind()`也是一个字符串方法,与`str.find()`类似,但是它是从字符串的右侧开始查找子字符串第一次出现的位置。它返回子字符串在父字符串中的索引值,如果子字符串不存在,则返回-1。例如:
```
str = "hello world"
print(str.rfind("o")) # 输出 7
print(str.rfind("python")) # 输出 -1
```
注意,`str.rfind()`与`str.find()`的区别在于搜索方向不同。`str.find()`从左到右搜索子字符串,而`str.rfind()`从右到左搜索子字符串。
相关问题
c++ string.rfind
`string.rfind()` 是 C++ 标准库中的一个成员函数,用于在字符串中从后往前查找指定字符或子字符串第一次出现的位置。该函数的定义如下:
```cpp
size_t rfind(const 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;
size_t rfind(char c, size_t pos = npos) const;
```
其中,第一个参数可以是 `string` 对象或者 `const char*` 类型的字符串,表示要查找的子字符串;第二个参数是可选的,表示查找的起始位置,默认为字符串的末尾。
该函数会返回一个 `size_t` 类型的整数,表示子字符串在原字符串中的位置。如果没有找到,则返回 `string::npos`。
例如,下面的代码演示了使用 `rfind()` 函数查找字符串中最后一个空格的位置:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello World, Welcome to C++!";
size_t pos = str.rfind(' ');
std::cout << "The last space is at position " << pos << std::endl;
return 0;
}
```
输出结果为:
```
The last space is at position 26
```
wstring.rfind()
`rfind`函数是`wstring`类的成员函数,用于在字符串中从后往前查找指定的子串并返回其位置。其用法与`find`函数类似,只是查找方向相反。示例如下:
```c++
#include <iostream>
#include <string>
int main() {
std::wstring str = L"这是一个测试测试字符串";
std::wstring substr = L"测试";
size_t pos = str.rfind(substr); // 从后往前查找子串的位置
if (pos != std::wstring::npos) { // 如果找到了子串
std::wcout << L"子串在字符串中的位置:" << pos << std::endl; // 输出:子串在字符串中的位置:9
} else { // 如果没有找到子串
std::wcout << L"字符串中没有找到子串" << std::endl;
}
return 0;
}
```
需要注意的是,`rfind`函数返回的位置是从0开始计数的,如果没有找到子串,则返回`std::wstring::npos`。