我正在寫一點操作系統,我需要能夠打印添加的變量。我有一個工作atoi函數,所以我倒過來給我一個itoa函數。沒有辦法訪問空閒內存,所以我需要弄清楚爲了創建適當大小的字符數組的位數。我想我需要用10除以得到它,然後將這些值模數化到正確的位置。這是我的C代碼到目前爲止:如何正確實現將int轉換爲字符串?
char* itoa(int res) {
int size = 0;
int t = res;
while(t/10 != 0) {
t = t/10;
size ++;
}
char ret[size+1];
ret[size] = '\0';
t = res;
int i = size - 1;
while(i > 0) {
ret[i] = t % 10;
t = t/10;
i--;
}
return ret;
}
截至目前,它不打印任何東西。它有什麼問題?
好,一件事是你要返回臨時的價值。 – imallett
對於否定'int'失敗。 – chux
你是什麼意思? - @imallett –