我正在写一点操作系统,我需要能够打印添加的变量。我有一个工作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 –