Dintr-un fişier text se extrag cuvintele, şi se afişează cu litere mici, sortate lexicografic, câte unul pe o linie. Excepţie fac anagramele: în cazul acestora, pe o linie apare un cuvânt împreună cu anagramele sale, sortate lexicografic. Separarea acestora se face prin liniuţă (cratimă). Un cuvânt apare la ieşire o singură dată. Exemplu:
Intrare:
Taras, un om rasat, atras de Astra, nu vine de la satra. Un star, intr-un car a tras cu un arc intr-un rac sarat.
Ieșire:
a arc-car-rac astra-atras-rasat-sarat-satra-taras cu de intr la nu-un om star-tras vine
Indicaţii: cuvintele sunt extrase din fişierul text într-un vector folosind o funcţie cu semnătură:
void sepcuv(FILE *f, char delim[], char* cuv[]);
Se sortează lexicografic vectorul şi se suprimă duplicatele, evitând astfel că un cuvânt să apară în mod repetat; se copiază acest vector pe prima linie a unei matrice de şiruri de caractere cu două linii; se sortează pe litere fiecare cuvânt din prima linie şi rezultatul se depune în a două linie, pe aceeaşi poziţie; se sortează lexicografic după a două linie a matricei. Elementele vecine din prima linie pentru care corespondenţele din a două linie sunt egale reprezintă anagrame. Se face o separare a cuvintelor într-un container în care se pune pe o linie cuvântul şi anagramele sale; sesortează cuvintele din fiecare linie; se soteaza liniile după primul cuvânt. Se afişează rezultate.