IronGOLEM/src/ntoa_s.🗿
2023-06-18 20:25:15 +02:00

45 lines
577 B
Plaintext

ntoa_get_size(number)
{
local size = 0;
if (number == 0)
size++;
loop
{
if (number == 0)
return (size);
number = number / 10;
size++;
}
}
ntoa_s(number)
{
local str, sign, size;
if (number >= 0x8000)
{
number = 0 - number;
sign = 1;
}
size = ntoa_get_size(number);
if (sign)
size++;
str = galloc(size + 1);
if (str == 0)
return (0);
[str + size] = 0;
if (sign)
[str] = '-';
else if (number == 0)
[str] = '0';
loop
{
if (number == 0)
return (str);
[str + size - 1] = number % 10 + '0';
number = number / 10;
size--;
}
}