Top.Mail.Ru
Ответы

Перевод из char в int c++

Мне нужно перевести цифру из char в int. То есть:
char a='5';
int b;
Как сделать чтобы этот int был равен пяти?

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

char *a="5";
int b;
sscanf( a, "%d", &b );
Или
b = a - '0' если символы.

Аватар пользователя
Гуру
11лет

Запомните навсегда - во всех языках программирования приведение char к int дает вам ASCII код символа, а не переводит '1' в 1

Для того чтобы получить не код символа а само число, можно использовать функцию atoi

char a = '5';
int b = atoi(&a);

Это. по моему, наилучший способ, так как функция atoi является частью стандартной библиотеки Си <cstdlib>

А вообще есть очень много вариантов, например от тех что написали другие участники, заканчивая банальный получением ASCII кода символа и с помощью циклов и операторов ветвления получить число

P.S перед конвертацией проверь, действительно ли в char цифры, иначе int будут присвоенные "левые" значения
Например:
int b;
char a;

if((a>='0')&&(a<='9')){ b = atoi(&a); }

Аватар пользователя
Оракул
11лет

Примерно так:

b = (int)a - 48;

Аватар пользователя
Профи
11лет