|
|
1.1 root 1: #include <stdio.h>
2: #define NITEMS 512
3: #define MAXLEN 256
4:
5: char *data[NITEMS];
6: char string[MAXLEN];
7:
8: main()
9: {
10: register char **cpp;
11: register int count;
12: extern int compare();
13: extern char *malloc();
14: extern char *gets();
15:
16: for (cpp = &data[0]; cpp < &data[NITEMS]; cpp++) {
17: if (gets(string) == NULL)
18: break;
19: if ((*cpp = malloc(strlen(string) + 1)) == NULL)
20: exit(1);
21: strcpy(*cpp, string);
22: }
23:
24: count = cpp - &data[0];
25: qsort(data, count, sizeof(char *), compare);
26:
27: for (cpp = &data[0]; cpp < &data[count]; cpp++) {
28: printf("%s\n", *cpp);
29: free(*cpp);
30: }
31: exit(0);
32: }
33:
34: compare(p1, p2)
35: register char **p1, **p2;
36: {
37: extern int strcmp();
38: return(strcmp(*p1, *p2));
39: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.