Разделить строку на массив слов c++

95
09 марта 2021, 04:00

В Java есть функция .split которая разделяет строку вокруг регулярного выражения и возвращает массив строк, так вот есть ли в C++ (стандартной библиотеке) аналогичная функция?

Answer 1
template<class itIn, class itOut, class T, class F>
itIn split(itIn it, itIn end, itOut out, T sep, F func) {
    while(it != end) {
        auto slice_end (std::find(it, end, sep));
        *out++ = func(it, slice_end);
        if(slice_end == end) { return end; }
        it = std::next(slice_end);
    }
}
int main(int argc, char *argv[])
{
    std::string str = "приём*приём*foo*bar*baz";
    std::list<std::string> l;
    split(std::begin(str), std::end(str), std::back_inserter(l), '*', [](auto itA, auto itB) {
        return std::string(itA, itB);
    });
    copy(std::begin(l), std::end(l), std::ostream_iterator<std::string>{std::cout, " "});
    std::cout << "\n";
    return 0;
}

ну или boost::split

READ ALSO
Подключение локальной БД из файла на С++

Подключение локальной БД из файла на С++

Пытаюсь подключиться к базе данных, созданной через Visual Studio (Средства -> Подключиться к базе данных)

102
Помогите понять различия

Помогите понять различия

У меня есть два класса:

104
Обработка ошибок lua c++

Обработка ошибок lua c++

Как можно реализовать вывод ошибки lua например: "Syntax error in scriptlua 4 line"

97
Разбить строку на несколько переменных

Разбить строку на несколько переменных

Есть строки вида 2 -580 12 -35

102