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