Стандарт C предписывает, чтобы символы '0'
, '1'
, ... и '9'
были последовательными и последовательными. Итак, мы знаем, что значение '1'
на 1 больше, чем значение '0'
(и аналогично для других цифр).
Принимая во внимание вышесказанное, мы знаем, что
'0' - '0' == 0;
'1' - '0' == 1;
....
'9' - '0' == 9;
Обратите внимание, что все вышеперечисленное должно работать так, как я описал, независимо от того, работает ли оно на компьютере на основе ASCII, или на EBCDIC, или на Klingon, или на любом другом.
Таким образом, для сравнения цифр в символьной форме ('0'
, ..., '9'
) с целочисленными значениями (0
, ..., 9
) просто вычтите '0'
из символа.
if (index == currentChar - '0') /* ... */;