Top.Mail.Ru
Ответы
Аватар пользователя
10лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Как перевести цифры из char в int(C++)

Здравствуйте.

(C++)

Вопрос таков.

у меня есть массив с символами '1' '2' '3' '4' (К примеру) как мне их перевести в int и получить число 1234.

Дополнен

Спасибо помог=)

По дате
По рейтингу
Аватар пользователя
Новичок
10лет

char arr[]={'1', '2', '3', '4' };
int i = stoi(string(arr, sizeof(arr)/sizeof(arr[0])));

Можно и без передачи размера в конструктор string в стандарте C++11, но тогда при передаче туда указателя (а не массива) может случайно произойти бяка, если нулевого байта не хватает.

При переполнении полетит out_of_range исключение.

Аватар пользователя
Просветленный
10лет

Неужели я зря писал?
Ну ладно. Пускай будет:

int main(){
char a[]="12345"; //можно и char a[]={'1','2','3','4','5'};
int b=0,size=0;//переменные. b будет содержать число. size - размер массива
size=strlen(a)<sizeof(a)?strlen(a):sizeof(a); //так сказать, защита от дурака. чтобы программа работала стабильно при разных вариантах объявления массива символов
for(int i=0,j=size-1;i<size;i++,j--) b+=(a[i]-'0')*pow(10,j); //цикл.
cout<<b; //вывод
return 0;
}

Ну или можно использовать функцию atoi.