In C, when you have a variable c
of type char, it actually stores some integer encoding of the char (usually the ASCII code). So c-'0'
means the difference of the code of the character contained in c
and the character 0
. Since the digits are in natural order it convert the digit in the associated number.