Карманы при переборе в C++
При переборе std::sregex_iterator также можно
использовать карманы. Пример строки:
std::string txt = "aaaa 123 bbbb 456";
Разместим все цифры, которые находятся в строке, по карманам. А при переборе объектов циклом выведем первое совпадение (оно будет считаться нулевым карманом), а также его элементы, тоже в свою очередь раскиданные по карманам:
std::regex re(R"((\d)(\d))");
for (std::sregex_iterator it(txt.begin(), txt.end(), re), end; it != end; ++it) {
std::cout << it->str(0) << " " << it->str(1) << " " << it->str(2) << "\n";
}
После выполнения кода выведется нулевой карман, т.е. вся подстрока, а также первый и второй символ из этой подстроки:
'12 1 2'
'45 4 5'
Дана строка:
std::string txt = "aaa 123 bbb 456 987";
Раскидайте все подстроки с числами по трем карманам. И выведите их .