public member function
<string>

std::basic_string::find_last_of

string (1)
size_type find_last_of (const basic_string& str, size_type pos = npos) const;
c-string (2)
size_type find_last_of (const charT* s, size_type pos = npos) const;
buffer (3)
size_type find_last_of (const charT* s, size_type pos, size_type n) const;
character (4)
size_type find_last_of (charT c, size_type pos = npos) const;
string (1)
size_type find_last_of (const basic_string& str, size_type pos = npos) const noexcept;
c-string (2)
size_type find_last_of (const charT* s, size_type pos = npos) const;
buffer (3)
size_type find_last_of (const charT* s, size_type pos, size_type n) const;
character (4)
size_type find_last_of (charT c, size_type pos = npos) const noexcept;
从字符串末尾查找字符
basic_string 中搜索与参数中指定的任何字符匹配的最后一个字符。

当指定pos时,搜索仅包括位置pos或之前的字符,忽略pos之后的任何可能出现的情况。

该函数使用traits_type::eq来确定字符的等价性。

参数

str
另一个包含要搜索的字符的 basic_string
pos
字符串中要考虑在搜索中的最后一个字符的位置。
任何大于或等于字符串长度的值(包括basic_string::npos)都意味着搜索整个字符串。
注意:第一个字符用值表示0(不是1).
s
指向字符数组的指针。
如果指定了参数n(3),则搜索数组中的前n个字符。
否则(2),期望一个以 null 结尾的序列:要匹配的字符序列的长度由第一个 null 字符的出现决定。
n
要搜索的字符值的数量。
c
要搜索的单个字符。

charTbasic_string 的字符类型(即,它的第一个模板参数)。
成员类型size_type是一种无符号整型类型。

返回值

匹配的最后一个字符的位置。
如果没有找到匹配项,则函数返回 basic_string::npos

成员类型size_type是一种无符号整型类型。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// string::find_last_of
#include <iostream>
#include <string>

void SplitFilename (const std::string& str)
{
  std::cout << "Splitting: " << str << '\n';
  std::string::size_type found = str.find_last_of("/\\");
  std::cout << " path: " << str.substr(0,found) << '\n';
  std::cout << " file: " << str.substr(found+1) << '\n';
}

int main ()
{
  std::string str1 ("/usr/bin/man");
  std::string str2 ("c:\\windows\\winhelp.exe");

  SplitFilename (str1);
  SplitFilename (str2);

  return 0;
}

Splitting: /usr/bin/man
 path: /usr/bin
 file: man
Splitting: c:\windows\winhelp.exe
 path: c:\windows
 file: winhelp.exe


复杂度

未指定,但通常最多是字符串长度(或pos)乘以要匹配的字符数(最坏情况)的线性关系。

迭代器有效性

没有变化。

数据竞争

该对象被访问。

异常安全

如果已知s未指向足够长的数组,会导致未定义行为
否则,该函数永远不会抛出异常(无抛出保证)。

另见