find_last_not_of(const char* str, size_t pos = npos) const
时间: 2024-03-23 19:40:50 浏览: 103
这是一个 string 类中的成员函数,用于查找字符串中最后一个不在指定字符集合中的字符。
函数原型如下:
```cpp
size_t find_last_not_of(const char* str, size_t pos = npos) const;
```
其中,str 表示指定的字符集合,pos 表示从哪个位置开始向前搜索,npos 表示搜索整个字符串。
函数返回最后一个不在指定字符集合中的字符的下标(位置),如果找不到,则返回 string::npos。
例如,对于字符串 `"hello world"`,调用该函数并指定字符集合为 `"ld"`,则返回值为 6,表示最后一个不在 `"ld"` 中的字符是字符 `"o"`,它的下标为 6。
相关问题
find_last_not_of
`find_last_not_of` 是 C++ 标准库中字符串类 `std::string` 的一个成员函数,用于在字符串中从后往前查找某个字符集合中第一个不在指定位置之前的字符,并返回该字符在字符串中的位置。
函数原型如下:
```cpp
size_t find_last_not_of(const char* s, size_t pos = npos) const;
size_t find_last_not_of(const string& str, size_t pos = npos) const;
size_t find_last_not_of(const char* s, size_t pos, size_t n) const;
size_t find_last_not_of(char c, size_t pos = npos) const;
```
其中 `s` 和 `str` 分别表示要查找的字符集合,`pos` 表示搜索的起始位置,默认为字符串末尾,`n` 表示 `s` 字符数组的长度,`c` 表示要查找的单个字符。如果找到了指定字符集合中的字符,则返回该字符在字符串中的位置;如果找不到,则返回 `string::npos`。
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
```
阅读全文