typedef char PAROLA[31];L'array avrà 31 elementi, per permettere di accomodare anche parole di esattamente 30 lettere (la 31-esima è '\0').
Le operazioni della struttura dati saranno controllo uguaglianza e diversità e controllo ordinamento lessicografico. Inoltre daremo le procedure per leggere e scrivere.
/*controllo uguaglianza*/ BOOL UgualeParola(PAROLA p1, PAROLA p2) { int i; for(i= 0; p1[i] != '\0' && (p1[i] == p2[i]); i++); return (p1[i] == p2[i]); } /*controllo diversità*/ BOOL DiversoParola(PAROLA p1, PAROLA p2) { int i; for(i= 0; p1[i] != '\0' && (p1[i] == p2[i]); i++); return (p1[i] != p2[i]); } /* altra versione BOOL DiversoParola(PAROLA p1, PAROLA p2) { return ! UgualeParola(p1,p2); } */ /*controllo ordine lessicografico ritorna vero sse p1 minore strettamente di p2 */ BOOL MinoreLess(PAROLA p1, PAROLA p2) { int i; for(i= 0; p1[i] != '\0' && (p1[i] == p2[i]); i++); return (p1[i] < p2[i]); } /*lettura parola la parola letta dal file fin sarà ritornata nella variabile p si assume che la parola termina quando si trova un carattere che non è una lettera o si sono lette 30 lettere*/ void LeggiParola(FILE * fin, PAROLA p) { int i, c; for(i= 0; (c = fgetc(fin)) && isalpha(c) && (i < 30); i++) p[i] = c; p[i] = '\0'; } /*scrittura parola la parola contenuta nella variabile p sarà scritta sul file fout*/ void ScriviParola(FILE * fout, PAROLA p) { int i; for(i= 0; p[i] != '\0'; i++) fputc(p[i],fout); }