dass man '0' abzieht, um daraus "einen int zu machen" ist so nicht richtig.
Das was man in die Konsole eingibt, ist eine Zeichenkette.
Gebe ich 555 ein, ist das die Zeichenkette "555".
Das ist nicht das gleiche wie der numerische Wert 555!
"5" ist wie ein Buchstabe; ein Teil einer Zeichenkette. Du findest alle ASCII Zeichen in der ASCII-Zeichentabelle mit ihren dazugehörigen echten Werten.
Der "Buchstabe" '0' zb. hat den Wert 48 in der Tabelle.
Alle weiteren Ziffern folgen ('1' = 49 usw.).
Wenn du nun also von dem Buchstaben, der eingegeben wird, zb. '5' den Wert von '0' abziehst, erhälst du den tatsächlichen Zahlenwert (das ist keine "Konvertierung", sondern reine Logik).
53 - 48 = 5
Wenn du also jeden Teil der Eingabe durchgehst und immer '0' davon abziehst, erhälst du den numerischen Wert von jeder Ziffer.
Wenn du die alle addierst hast du die Quersumme.
Du musst dir eben nur immer vor Augen halten, dass '0' nicht gleich 0 ist, sondern eigentlich 48