Listing 2

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int comp(const void *, const void *);
unsigned char *list[] = { "cat", "car", "cab",
                      "cap", "can" };

int main()
   {
   int x;
   
   qsort(list, 5, sizeof(unsigned char *), comp);
   for (x = 0; x < 5; x++)
       printf("%s\n", list[x]);
   return 0;
   }

int comp(const void *a, const void *b)
   {
   unsigned **A = (unsigned char **)a;
   unsigned **B = (unsigned char **)b;
   return strcmp(*A, *B);
   }