Anagrame

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  un cuvânt  apară în mod repetat; se copiază acest vector pe prima linie a unei matrice de şiruri de caractere cu două liniise sortează pe litere fiecare cuvânt din prima linie şi rezultatul se depune în a două linie, pe aceeaşi poziţiese 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 salesesortează cuvintele din fiecare linie; se soteaza liniile după primul cuvântSe afişează rezultate.