regex — извлекает первые два целых числа, как они появляются в строке переполнения стека

У меня есть основной вопрос, касающийся удаления целых чисел из строки C ++. Я не особенно знаком с c ++ или слишком хорош с регулярными выражениями.

У меня есть такая строка

string myString = "12 text 345 text"

Целые числа могут быть любой длины, а также текста (это не является фиксированным). Что мне нужно сделать, это извлечь первое целое число (12) и второе (345) в два отдельных целочисленных объекта.

Любая помощь будет принята с благодарностью.

1

Решение

Вы можете использовать stringstream следующее:

 std::string myString = "12 text 345 text";
int firstInteger = 0;
int secondInteger = 0;
std::string firstString= "";
std:string secondString="";

std::stringstream ss(myString);
ss >> firstInteger >> firstString >> secondInteger >> secondString;
std::cout << "firstInteger " << firstInteger
<< "\nSecondInteger " << secondInteger <<std::endl;

Это выводит:

 firstInteger 12
secondInteger 345
2

Другие решения

сделай это

stringstream os(myString);
os >> int imp1 >> string dummy >> int imp2;

cout << imp1 << " and " << imp2;
1

По вопросам рекламы [email protected]