白熱してるとこ悪いがCでは数字の文字コードは連続していることが保障されているから
-'0'でよくね?