2016-11-18 2 views
-4

Как я могу анализировать числа 4648, 4649, 4650 из этой строки на три переменные int без использования regex.h?Строка parse, содержащая числа в целые числа

* SEARCH 4648 4649 4650 
a3 OK SEARCH completed 
+0

Не было ли это просто спросил? – NathanOliver

+3

Возможный дубликат [Как разобрать строку на int в C++?] (Http://stackoverflow.com/questions/194465/how-to-parse-a-string-to-an-int-in-c) –

ответ

0

Попробуйте использовать std::istringstream:

static const std:string test_string = "* SEARCH 4648 4649 4650"; 
char asterisk; 
std::string label; 
unsigned int value1, value2, value3; 
std::istringstream input(test_string); 
input >> asterisk >> label >> value1 >> value2; 

Edit 1:
Для inputing более одного номера:

input >> asterisk >> label; 
std::vector<unsigned int> numbers; 
unsigned int value; 
while (input >> value) 
{ 
    numbers.push_back(value); 
} 
+0

Я не могу определить, сколько цифр будет. Строка может быть такой »* SEARCH 454 446 456 45645 46465« –

+0

Если вы не знаете, сколько чисел, затем используйте 'std :: vector' и цикл while, например' while (input >> value) {number_vector.push_back (значение);} '. –

+0

Можете ли вы добавить код коментарий? –

Смежные вопросы