Строка С++ в вектор с использованием разделителя

Опубликовано: 20 Февраля, 2023

Разделители используются в качестве разделителей между символами или словами в строке, чтобы разные результаты могли быть разделены разделителем. В этой статье мы рассмотрим различные способы преобразования строки с разделителями в вектор слов после разделения разделителями.

Пример:

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

Итератор токена регулярного выражения размечает предложение на основе заданного регулярного выражения.