C++ парсинг строки на числа

148
31 мая 2022, 11:40

Друзья! Подскажите, пожалуйста, наиболее элегантный способ след. задачи:

Имеется строка string str= "(20, 25)".

В отдельных случаях str может быть равна "(20)" или "(20, 25, 30)" и тд..

Из этой строки я хочу получить все целочисленные значения int, сколько бы их там не было.

Я, конечно, могу написать алгоритм, который будет посимвольно парсить эту строку, и в зависимости от символа делать определенные выводы и тд, и тп... Но мне кажется есть способ получше. Мб регуляркой как-то?

Answer 1

Как вариант для такого частного случая, где нет отрицательных чисел, и числа разделены пробелом:

auto op = [](const char c) { return c != ' ' && !isdigit(c); };
auto last = std::remove_if(str.begin(), str.end(), op);
std::istringstream is(std::string(str.begin(), last));
int n;
while (is >> n)
    cout << n << ' ';   
READ ALSO
Fatal error: Uncaught Error: Call to undefined function mysql_connect()

Fatal error: Uncaught Error: Call to undefined function mysql_connect()

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\Users\user\Desktop\open\OpenServer\domains\lazarua\index

251
использование mongo в php на windows

использование mongo в php на windows

Не может найти класс MongoDB\Driver\Manager

260
связанные таблицы mysql и redbeanphp?

связанные таблицы mysql и redbeanphp?

Опыта и понимания ООП маловато, но задача стоит и его надо решать) расскажу суть моей задачиНадо создать личный кабинет где будет 3 таблицы...

160
Рефакторинг кода Laravel

Рефакторинг кода Laravel

подскажите пожалуйста, код рабочий но хороший ли он с точки зрения написании правильного кода? Можно ли его как нибудь отрефакторить ?

163