Метод find_last_of
Метод find_last_of ищет последнее вхождение любого символа из указанного набора в строке. Он возвращает позицию найденного символа или значение string::npos, если ни один символ не был найден. В первый параметр передается строка или C-строка с набором искомых символов. Во второй параметр можно передать позицию, с которой следует начать поиск (поиск ведется справа налево от этой позиции). В третий параметр передается количество символов из набора, которое нужно учитывать при поиске.
Синтаксис
str.find_last_of(str_find, [pos], [count])
Пример
Давайте найдем позицию последнего вхождения любого символа из набора "bd" в строке "abcde":
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
size_t res = str.find_last_of("bd");
cout << res << endl;
return 0;
}
Результат выполнения кода:
3
Пример
Давайте найдем позицию последнего вхождения любого символа из набора "123" в строке "12345", начиная поиск с позиции 2:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "12345";
size_t res = str.find_last_of("123", 2);
cout << res << endl;
return 0;
}
Результат выполнения кода:
2
Пример
Давайте проверим, что метод возвращает string::npos, если ни один символ из набора не найден:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
size_t res = str.find_last_of("xyz");
if (res == string::npos) {
cout << "not found" << endl;
}
return 0;
}
Результат выполнения кода:
"not found"
Смотрите также
-
метод
find_last_of,
который ищет последнее вхождение любого символа из набора -
метод
find_first_of,
который ищет первое вхождение любого символа из набора -
метод
rfind,
который ищет последнее вхождение подстроки -
метод
find,
который ищет первое вхождение подстроки