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