Compare a list of strings: Difference between revisions

Content added Content deleted
(→‎{{header|C}}: reduce number of variables, fix types, sprinkle const)
Line 537: Line 537:


=={{header|C}}==
=={{header|C}}==
<lang c>#include <stdio.h>
<lang c>#include <stdbool.h>
#include <string.h>
#include <string.h>


static bool
int strings_are_equal(char * * strings, int nstrings)
strings_are_equal(const char **strings, size_t nstrings)
{
{
for (size_t i = 1; i < nstrings; i++)
int result = 1;
if (strcmp(strings[0], strings[i]) != 0)
return false;
while (result && (--nstrings > 0))
return true;
{
result = !strcmp(*strings, *(strings+nstrings));
}

return result;
}
}


static bool
int strings_are_in_ascending_order(char * * strings, int nstrings)
strings_are_in_ascending_order(const char **strings, size_t nstrings)
{
{
for (size_t i = 1; i < nstrings; i++)
int result = 1;
if (strcmp(strings[i - 1], strings[i]) >= 0)
int k = 0;
return false;
return true;
while (result && (++k < nstrings))
{
result = (0 >= strcmp(*(strings+k-1), *(strings+k)));
}

return result;
}</lang>
}</lang>