Find_last_of
时间: 2023-07-29 10:09:03 浏览: 159
`find_last_of` 是一个字符串成员函数,可以在字符串中搜索给定字符集中的任何一个字符,并返回最后一个匹配字符的位置。如果未找到匹配字符,则返回 `std::string::npos`。
以下是示例代码:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = "Hello world!";
char ch = 'o';
size_t pos = str.find_last_of(ch);
if (pos != std::string::npos) {
std::cout << "The last position of '" << ch << "' in \"" << str << "\" is " << pos << std::endl;
} else {
std::cout << "No match found for '" << ch << "' in \"" << str << "\"" << std::endl;
}
return 0;
}
```
输出:
```
The last position of 'o' in "Hello world!" is 7
```
相关问题
find_last_of
find_last_of是C++中string类的一个成员函数,用于查找字符串中最后一个匹配某个字符的位置。它的语法为string.find_last_of(char c, size_t pos),其中c是要查找的字符,pos是从哪个位置开始查找。如果找到了匹配的字符,则返回该字符在字符串中的位置,否则返回string::npos。需要注意的是,find_last_of只能查找单个字符,不能查找字符串。
find_first_of和find_last_of及相关函数并举例
除了 `find_first_of`,`std::string` 类中还有一些其他的查找函数,它们的作用都是在字符串中查找指定字符或字符集的位置。下面是几个常用的查找函数及其功能:
1. `find(char ch, size_t pos = 0) const`:在字符串中查找字符 `ch` 的位置,从 `pos` 位置开始查找,默认值为 0。
```cpp
std::string s = "hello, world!";
size_t pos = s.find('o'); // 返回 4
```
2. `rfind(char ch, size_t pos = npos) const`:在字符串中查找字符 `ch` 的位置,从 `pos` 位置往前查找,`npos` 表示从字符串的末尾开始查找。
```cpp
std::string s = "hello, world!";
size_t pos = s.rfind('o'); // 返回 8
```
3. `find_first_of(const char* str, size_t pos = 0) const`:在字符串中查找第一个匹配指定字符集中任意一个字符的位置。
```cpp
std::string s = "hello, world!";
size_t pos = s.find_first_of("ow"); // 返回 4
```
4. `find_last_of(const char* str, size_t pos = npos) const`:在字符串中查找最后一个匹配指定字符集中任意一个字符的位置。
```cpp
std::string s = "hello, world!";
size_t pos = s.find_last_of("ow"); // 返回 9
```
5. `find_first_not_of(const char* str, size_t pos = 0) const`:在字符串中查找第一个不匹配指定字符集中任意一个字符的位置。
```cpp
std::string s = "hello, world!";
size_t pos = s.find_first_not_of("helo, "); // 返回 5
```
6. `find_last_not_of(const char* str, size_t pos = npos) const`:在字符串中查找最后一个不匹配指定字符集中任意一个字符的位置。
```cpp
std::string s = "hello, world!";
size_t pos = s.find_last_not_of("dlrow!"); // 返回 10
```
阅读全文