2015-06-15 2 views
0

У меня есть массив массивов char. Мне нужно преобразовать его в массив из int. Как я могу это сделать? Я знаю, что мы можем преобразовать char* в int следующим образом:Как преобразовать char * в int?

char *i = "123"; 
std::stringstream ss; 
ss << i; 
int ii; 
ss >> ii; 
std::cout << ii << std::endl; //prints 123 

Но как я могу преобразовать массив такого массива в массив целых чисел?

+0

Вы имеете в виду что-то вроде ['std :: stoi'] (http://en.cppreference.com/w/cpp/string/basic_string/stol)? –

+0

@JoachimPileborg Итак, использование stringstream - это унаследованный способ сделать это? –

ответ

2

Вы можете попробовать функцию atoi() уже присутствующую.

Он преобразует строку в целое число, которое вы можете использовать.

+0

Я слышал, что мы должны стараться избегать использования этой функции ... –

+0

Вы можете взглянуть на [это] (http://stackoverflow.com/questions/3850558/how-to-check-to-ensure- вы иметь-в-целое число, перед тем, позвонив-atoi) –

1
char* strings[4] = { "123", "456", "789", "555" }; 
int vals[4]; 
for (int i = 0; i < 4; ++i) 
{ 
    std::stringstream ss; 
    ss << strings[i]; 
    ss >> vals[i]; 
} 
for (int i = 0; i < 4; ++i) 
{ 
    std::cout << vals[i] << std::endl; 
} 
Смежные вопросы