好吧,既然number[i]
的類型是char
你可以將其轉換成相應的int
(最多一般情況下)
int result = (int) char.GetNumericValue(number[i]);
請注意,這char.GetNumericValue
回報double
,它是實際的,比如說,'⅜'
字符(3/8
corrsponds到0.375
);或者如果你只['0'..'9']
範圍內工作,所有你需要做的就是減去'0'
:
int result = number[i] - '0';
到目前爲止,你的代碼可以被實現爲
// 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';
...
}
可能要右對齊兩字符串:
number = "124235245423523423"
+
number2 = "3423525232332325423"
------------------------------
354... ...846
在這種情況下,你必須修改
for
循環
:
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';
...
}
按索引獲取char,然後將其轉換爲數字。 有用的鏈接: 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 –
for(i = number.length-1; i> = 0; i--) – owairc
爲什麼你沒有提到實際的問題,IndexOutOfRangeException? –