diff options
Diffstat (limited to 'string/tst-svc.c')
-rw-r--r-- | string/tst-svc.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/string/tst-svc.c b/string/tst-svc.c new file mode 100644 index 0000000..c6add5b --- /dev/null +++ b/string/tst-svc.c @@ -0,0 +1,45 @@ +/* Test for strverscmp() */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#define MAX_STRINGS 256 +#define MAX_LINE_SIZE 32 + +int +compare (const void *p1, const void *p2) +{ + return strverscmp (*((char **) p1), *((char **) p2)); +} + +int +main (int argc, char *argv[]) +{ + char line[MAX_LINE_SIZE + 1]; + char *str[MAX_STRINGS]; + int count = 0; + int i, n; + + while (count < MAX_STRINGS && fgets (line, MAX_LINE_SIZE, stdin) != NULL) + { + n = strlen (line) - 1; + + if (line[n] == '\n') + line[n] = '\0'; + + str[count] = strdup (line); + + if (str[count] == NULL) + exit (EXIT_FAILURE); + + ++count; + } + + qsort (str, count, sizeof (char *), compare); + + for (i = 0; i < count; ++i) + puts (str[i]); + + exit (EXIT_SUCCESS); +} |