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