Nun, da number[i]
vom Typ char
Sie es in entsprechende int
umwandeln kann entweder durch (die meisten allgemeinen Fall)
int result = (int) char.GetNumericValue(number[i]);
Bitte beachten Sie, dass char.GetNumericValue
kehrt double
, es tatsächlich ist für, sagen wir, '⅜'
Charakter (3/8
corrsponds zu 0.375
); oder wenn Sie mit ['0'..'9']
Bereich nur funktionieren, alles, was Sie tun müssen, ist '0'
zu subtrahieren:
int result = number[i] - '0';
Bisher Ihr Code kann als
// Math.Min - number.Length and number2.Length have diffrent size
// - 1 - strings are zero-based [0..Length - 1]
for (i = Math.Min(number.Length, number2.Length) - 1; i >= 0; i--) {
int save = number[i] + number2[i] - 2 * '0';
...
}
implementiert werden wahrscheinlich wollen Sie rechts ausrichten sowohl Strings:
number = "124235245423523423"
+
number2 = "3423525232332325423"
------------------------------
354... ...846
in diesem Fall, dass Sie for
Schleife zu ändern haben:
for (int i = 0; i < Math.Max(number.Length, number2.Length); ++i) {
int sum =
(i < number.Length ? number[number.Length - i - 1] : '0') +
(i < number2.Length ? number2[number2.Length - i - 1] : '0') -
2 * '0';
...
}
Holen Sie sich das Zeichen nach Index und konvertieren Sie es dann in Nummer. Hilfreiche Links: http://stackoverflow.com/questions/2416894/how-to-return-the-character-which-is-at-the-index http://stackoverflow.com/questions/239103/c -sharp-char-to-int –
für (i = number.length-1; i> = 0; i--) – owairc
Warum haben Sie nicht das eigentliche Problem, die 'IndexOutOfRangeException' erwähnt? –