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未指向足夠長的陣列,會導致未定義行為
否則,該函式永遠不會丟擲異常(無丟擲保證)。

另見