Метод find_last_not_of
Метод find_last_not_of класса string ищет последний символ в строке,
который не входит в указанный набор символов. Метод возвращает позицию
найденного символа или значение string::npos, если все символы строки
входят в набор. В первом параметре мы передаем строку или набор символов,
которые нужно исключить из поиска, а во втором - позицию, с которой
следует начинать поиск к началу строки.
Синтаксис
str.find_last_not_of(set, [pos])
Пример
Давайте найдем последний символ строки "abcde", который не входит
в набор "cde":
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
size_t pos = str.find_last_not_of("cde");
cout << pos << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте выведем сам символ, найденный методом find_last_not_of:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
size_t pos = str.find_last_not_of("cde");
cout << str[pos] << endl;
return 0;
}
Результат выполнения кода:
"b"
Пример
Давайте найдем последний непробельный символ строки " hello ":
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = " hello ";
size_t pos = str.find_last_not_of(" ");
cout << pos << endl;
return 0;
}
Результат выполнения кода:
6
Пример
Давайте проверим случай, когда все символы строки входят в набор:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
size_t pos = str.find_last_not_of("abcde");
if (pos == string::npos) {
cout << "not found" << endl;
}
return 0;
}
Результат выполнения кода:
"not found"
Смотрите также
-
метод
find_first_not_of,
который ищет первый символ не из указанного набора -
метод
find_last_of,
который ищет последний символ из указанного набора -
метод
rfind,
который ищет последнее вхождение подстроки