find_last_of()并举例
时间: 2023-12-16 13:03:01 浏览: 73
`find_last_of()` 是一个字符串操作函数,用于在字符串中查找指定字符集中最后一个出现的字符的位置。它的语法如下:
```
size_t find_last_of (const string& str, size_t pos, const string& chars);
```
其中,`str` 是要查找的字符串,`pos` 是起始查找位置(默认为 `string::npos` 即字符串末尾),`chars` 是要查找的字符集合。
下面是一个示例:
```c++
#include <iostream>
#include <string>
int main() {
std::string str("hello world");
std::size_t pos = str.find_last_of("l");
if (pos != std::string::npos) {
std::cout << "Last 'l' found at position " << pos << std::endl;
}
return 0;
}
```
输出结果为:
```
Last 'l' found at position 9
```
在上面的示例中,`find_last_of()` 函数查找了字符串 `"hello world"` 中最后一个 `'l'` 字符的位置,并返回了该位置的索引值 9。
相关问题
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
```
给我解释一下matlab中的find函数,并举例说明
在MATLAB中,`find` 函数是一个非常实用的工具,它用于查找数组中特定元素的位置(索引)。该函数接受一个向量作为输入,如果找到指定值,则返回该值对应的索引向量;如果没有找到,则返回空向量或特定大小的全零向量。
基本语法如下:
```matlab
indices = find(input_array, value, 'switch');
```
- `input_array`: 输入的数组,在其中搜索指定的值。
- `value`: 要查找的目标值,可以是一个标量或一个向量,如果是向量,`find` 将返回所有匹配项的索引。
- `'switch'`: 可选参数,常见的有以下几种:
- `'first'`: 返回第一个匹配项的索引(默认)。
- `'last'`: 返回最后一个匹配项的索引。
- `'sorted'`: 如果输入是有序的,返回按升序排列的索引。
- `'stable'`: 保持原数组中元素的顺序,即使它们在输入数组中有相同的值。
例如:
```matlab
% 创建一个矩阵
A = [1 4 6 8; 2 5 7 9; 3 0 5 8];
% 查找值5的索引
index = find(A == 5);
disp(index); % 输出:[2, 3]
% 查找值1和2的所有索引,结果会是一个向量
indexes = find([1, 2], A);
disp(indexes); % 输出:[1, 1; 2, 1]
```
在这里,`find` 找到了数组 `A` 中所有值等于5的位置以及同时存在1和2的位置。
阅读全文