#include #include #include char **readnames ( char fname[], int *n ) { FILE *fp; int i, l; char **A, buf[1024]; fp = (FILE *)fopen(fname,"r"); if (fp == NULL) { fprintf(stderr, "Error: unable to open file...\n"); *n = 0; return NULL; } fscanf(fp,"%d",n); A = (char **)malloc((*n) * sizeof(char *)); for (i=0; i<*n; ++i) { while (getc(fp) != '\n'); fscanf(fp, "%s", buf); l = strlen(buf); A[i] = (char *)malloc((l+1) * sizeof(char)); strcpy(A[i],buf); } fclose(fp); return A; } void sortnames ( char **A, int n ) { char *t; int i, j; for (j=n-2; j>=0; --j) { for (i=0; i<=j; ++i) { if (strcmp(A[i],A[i+1]) > 0) { t = A[i]; A[i] = A[i+1]; A[i+1] = t; } } } } void printnames ( char **A, int n ) { int i; for (i=0; i