В C тип char
является целочисленным, и вы можете выполнять с ним арифметические операции. Вы можете конвертировать между различными целочисленными типами, используя приведение типов - имя типа в (), например для преобразования char
userChar
в long
вы можете написать (long)userChar
. Однако в целочисленных выражениях типы, меньшие int
, повышаются до int
, поэтому вам не понадобится приведение для преобразования char
в int
.
Последнее, что вам нужно знать, это то, что каким бы ни был целочисленный эквивалент символа '1'
(фактическое значение неважно), он на 1 больше, чем целочисленный эквивалент для 0
; другими словами, символы '0'
, '1'
, ..., '9'
представлены непрерывным диапазоном целых чисел (то же самое верно для 'a'
, 'b'
, ..., 'z'
и 'A'
, 'B'
, ..., 'Z'
).
Поэтому, если вы знаете, что char
является цифрой (например, потому что вы использовали isdigit()
), вы получите его целочисленный эквивалент, используя:
int intValue = userChar - '0';