Строка С++ в вектор с использованием разделителя
Разделители используются в качестве разделителей между символами или словами в строке, чтобы разные результаты могли быть разделены разделителем. В этой статье мы рассмотрим различные способы преобразования строки с разделителями в вектор слов после разделения разделителями.
Пример:
string x=”A B C”;
string y=”A*B*C”;
// Separate x into [‘A’,’B’,’C’] with delimiter ‘ ‘
// Separate y into [‘A’,’B’,’C’] with delimiter ‘*’
Методы, которые могут быть использованы для выполнения этой операции:
- Использование функции найти()
- Использование функции strtok()
- Использование getline() и stringstream
- Использование find_first_not_of() с функцией find()
- Использование regex_token_iterator
1. Использование функции find()
Функция find () используется для поиска первого вхождения подстроки в строку и возвращает индекс этого в данной строке, если не найдено, возвращает npos. Чтобы узнать больше о npos, обратитесь к статье: string::npos в C++.
2. Использование функции strtok()
Функция strtok() возвращает следующий токен, разделенный разделителем в строке. Токены помещаются в вектор до тех пор, пока не будет достигнут нулевой указатель.
3. Использование getline() и stringstream
Он работает для односимвольных разделителей.
4. Использование find_first_not_of() с функцией find()
find_first_not_of() используется для поиска в строке первого символа, который не соответствует ни одному из символов, указанных в строке. Функция find() используется для поиска первого вхождения символа.
5. Использование regex_token_iterator
Итератор токена регулярного выражения размечает предложение на основе заданного регулярного выражения.