add: strncmp

This commit is contained in:
starnakin 2023-06-18 15:37:24 +02:00
parent 000c324568
commit 54523b29c0
2 changed files with 26 additions and 0 deletions

14
src/strncmp.🗿 Normal file
View File

@ -0,0 +1,14 @@
strncmp(s1, s2, n)
{
local i;
if (n == 0)
return (0);
i = 0;
loop
{
if (i == n - 1 | [s1 + i] != [s2 + i] | [s1 + i] == 0 | [s2 + i] == 0)
return ([s1 + i] - [s2 + i]);
i++;
}
}

12
tests/strncmp.🗿 Normal file
View File

@ -0,0 +1,12 @@
main()
{
name = "strncmp";
test_int(strncmp("test", "test", 4), 0, "same chars");
test_int(strncmp("s", "b", 4), 17, "");
test_int(strncmp("", "", 4), 0, "empty strings");
test_int(strncmp("", "a", 0), 0, "");
test_int(strncmp("ab", "ac", 1), 0, "");
test_int(strncmp("aq", "a", 1), 0, "");
test_int(strncmp("aq", "a", 2), 113, "");
}