我一直在想如何將輸入的字符串轉換爲整數。我發現這個功能的在線代碼:試圖瞭解這個字符串到整數函數的工作原理
int toString(char a[]) {
int c, sign, offset, n;
if (a[0] == '-') { // Handle negative integers
sign = -1;
}
if (sign == -1) { // Set starting position to convert
offset = 1;
}
else {
offset = 0;
}
n = 0;
for (c = offset; a[c] != '\0'; c++) {
n = n * 10 + a[c] - '0';
}
if (sign == -1) {
n = -n;
}
return n;
}
鏈接here 代碼工作,但我不明白爲什麼。具體來說,我不明白這部分是如何工作的:
n = 0;
for (c = offset; a[c] != '\0'; c++) {
n = n * 10 + a[c] - '0';
}
如果n = 0,乘以10會如何影響結果?另外,如果限制因子是[c]!='\ 0',for循環如何結束?一個[c]如何等於零?
任何幫助將不勝感激
這不是教程服務。如果您自己編寫代碼時遇到困難,請將其發佈並解釋發生了什麼問題。 –
n最初只有0,此後一旦添加了'a [c] - '0',它將會改變,然後可能會受到後面乘法的影響。 – Annabelle
提示:乘以10與後續迭代有關。顯然,不是第一個。 –