Возможный дубликат:
Как преобразовать число в строку и наоборот в C ++
Как мне преобразовать результат совпадения boost :: regex в другой формат, например, целое число с кодом ниже?
string s = "abc123";
boost::regex expr("(\\s+)(\\d+)");
boost::smatch match;
if(boost::regex_search(s, match, expr)) {
string text(match[0]);
// code to convert match[1] to integer
}
Я уверен, что вы хотели бы иметь
string text(match[1]);
// convert match[2] to integer
вместо этого, как match[0]
является полностью совпадающей вещью (здесь abc123), поэтому индексация субматчей начинается с 1.
Что касается преобразования в целочисленную часть, lexical_cast удобно использовать:
string s = "abc123";
boost::regex expr("(\\s+)(\\d+)");
boost::smatch match;
if(boost::regex_search(s, match, expr)) {
string text(match[1]);
int num = boost::lexical_cast<int>(match[2]);
}
Других решений пока нет …