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

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

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

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

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

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


Ответы (1 шт):

Автор решения: AR Hovsepyan

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

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 << ' ';   
→ Ссылка