forked from starnakin/IronGOLEM
add: ntoa_s
This commit is contained in:
parent
7d6e6c79db
commit
0a152b9bef
40
src/ntoa_s.🗿
Normal file
40
src/ntoa_s.🗿
Normal file
@ -0,0 +1,40 @@
|
||||
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;
|
||||
local size;
|
||||
|
||||
size = ntoa_get_size(number);
|
||||
if (number >= 0x8000)
|
||||
size++;
|
||||
str = galloc(size + 1);
|
||||
if (str == 0)
|
||||
return (0);
|
||||
[str + size] = 0;
|
||||
if (number >= 0x8000)
|
||||
[str] = '-';
|
||||
else if (number == 0)
|
||||
[str] = '0';
|
||||
loop
|
||||
{
|
||||
if (number == 0)
|
||||
return (str);
|
||||
[str + size - 1] = number % 10 + '0';
|
||||
number = number / 10;
|
||||
size--;
|
||||
}
|
||||
}
|
26
tests/ntoa_s.🗿
Normal file
26
tests/ntoa_s.🗿
Normal file
@ -0,0 +1,26 @@
|
||||
main()
|
||||
{
|
||||
local ptr;
|
||||
|
||||
name = "ntoa_s";
|
||||
|
||||
ptr = ntoa_s(9000);
|
||||
test_str(ptr, "9000", "");
|
||||
free(ptr);
|
||||
|
||||
ptr = ntoa_s(55);
|
||||
test_str(ptr, "55", "");
|
||||
free(ptr);
|
||||
|
||||
ptr = ntoa_s(0);
|
||||
test_str(ptr, "0", "");
|
||||
free(ptr);
|
||||
|
||||
ptr = ntoa_s(0 - 55);
|
||||
test_str(ptr, "-55", "");
|
||||
free(ptr);
|
||||
|
||||
ptr = ntoa_s(0 - 1);
|
||||
test_str(ptr, "-1", "");
|
||||
free(ptr);
|
||||
}
|
Loading…
Reference in New Issue
Block a user