例如,我必须编写一个实现itoa
,其中输出表示包含在一个数组v
中。数组格式必须如下:
v[0] - the length of number (in digits)
v[1] ... v[v[0]] - the number's digits, as chars in reversed order
例子:
n = 123 => v = ['3', '3', '2', '1']
下面是我的itoa
实现,但我只能让它适用于恰好包含三位数的数字。你能指出我正确的方向吗?我做错了什么或我错过了什么?几个小时以来,我一直在努力解决这个问题。
char* build_number(int n)
{
int i = 1;
char *v = NULL;
v = (char*) calloc(1, sizeof(char));
while (n > 0)
{
v[i] = '0' + (n % 10);
n /= 10;
v = realloc(v, i);
i ++;
}
v[0] = '0' + (i - 1);
return v;
}