|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 1207 (0x4b7) Types: TextFile Names: »mkdict.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Bog/mkdict.c«
/* vi: set tabstop=4 : */ /* * Filter out words that: * 1) Are not completely made up of lower case letters * 2) Contain a 'q' not immediately followed by a 'u' * 3) Are less that 3 characters long * 4) Are greater than MAXWORDLEN characters long */ #include <ctype.h> #include <stdio.h> #include "bog.h" main(argc, argv) int argc; char **argv; { register char *p, *q, *r; register int ch, common, i, n; int current, len, prev, qcount; char buf[2][MAXWORDLEN + 1]; prev = 0; current = 1; buf[prev][0] = '\0'; if (argc == 2) n = atoi(argv[1]); i = 1; while (gets(buf[current]) != (char *) NULL) { if (argc == 2 && i++ % n) continue; len = 0; for (p = buf[current]; *p != '\0'; p++) { if (!islower(*p)) break; if (*p == 'q') { q = p + 1; if (*q != 'u') break; else { while (*q = *(q + 1)) q++; } len++; } len++; } if (*p != '\0' || len < 3 || len > MAXWORDLEN) continue; p = buf[current]; q = buf[prev]; qcount = 0; while ((ch = *p++) == *q++ && ch != '\0') if (ch == 'q') qcount++; common = p - buf[current] - 1; printf("%c%s", common + qcount, p - 1); prev = !prev; current = !current; } }