|
|
1.1 ! root 1: #include <stdio.h> ! 2: ! 3: #define NNAMES 512 ! 4: #define MAXLEN 60 ! 5: ! 6: char *array[NNAMES]; ! 7: char first[MAXLEN], mid[MAXLEN], last[MAXLEN]; ! 8: char *space = " "; ! 9: ! 10: int compare(); ! 11: extern char *strcat(); ! 12: ! 13: main() ! 14: { ! 15: register int index, count, inflag; ! 16: register char *name; ! 17: ! 18: count = 0; ! 19: while (scanf("%s %s %s\n", first, mid, last) == 3) { ! 20: strcat(first, space); ! 21: strcat(mid, space); ! 22: name = strcat(first, (strcat(mid, last))); ! 23: inflag = 0; ! 24: ! 25: for (index=0; index < count; index++) ! 26: if (strcmp(array[index], name) == 0) ! 27: inflag = 1; ! 28: ! 29: if (!inflag) { ! 30: if ((array[count] = ! 31: malloc(strlen(name) + 1)) == NULL) { ! 32: fprintf(stderr, ! 33: "insufficient memory is available\n"); ! 34: exit(1); ! 35: } ! 36: strcpy(array[count], name); ! 37: count++; ! 38: } ! 39: } ! 40: ! 41: shellsort(array, count, sizeof(char *), compare); ! 42: for (index=0; index < count; index++) ! 43: printf("%s\n", array[index]); ! 44: exit(0); ! 45: } ! 46: ! 47: compare(s1, s2) ! 48: register char **s1, **s2; ! 49: { ! 50: extern int strcmp(); ! 51: return(strcmp(*s1, *s2)); ! 52: } ! 53:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.