Друзья! Подскажите, пожалуйста, наиболее элегантный способ след. задачи:
Имеется строка string str= "(20, 25)".
В отдельных случаях str может быть равна "(20)" или "(20, 25, 30)" и тд..
Из этой строки я хочу получить все целочисленные значения int, сколько бы их там не было.
Я, конечно, могу написать алгоритм, который будет посимвольно парсить эту строку, и в зависимости от символа делать определенные выводы и тд, и тп... Но мне кажется есть способ получше. Мб регуляркой как-то?
Как вариант для такого частного случая, где нет отрицательных чисел, и числа разделены пробелом:
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 << ' ';
Сборка персонального компьютера от Artline: умный выбор для современных пользователей