/* 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); }