PDA

View Full Version : programmazione in c: chi mi risolve questo esercizio :(?


marius84
15-12-2006, 12:11
ciao a tutti, ho un esercizio da fare e non so proprio dove mettere le mani...
chi è il santo che mi aiuta? :D

Scrivere un programma in C che riceva in input un insieme di parole (stringhe, possibilmente lette da un file di testo) e produca in output (possibilmente su file) le parole di input ordinate. Esempio:



Input: “Oggi è proprio una bella giornata. Quasi quasi vado al mare.”



Output:

al

bella

è

giornata

mare

Oggi

proprio

Quasi

quasi

una

vado



Per l’ordinamento utilizzare l’algoritmo di Merge Sort (versione ricorsiva) ovviamente modificato per operare su array di puntatori a char anziché su array di int. Inoltre, lo spazio da allocare in memoria per memorizzare le parole lette da file deve essere dinamico, ovvero bisogna contare prima le parole e poi allocare lo spazio necessario.

andbin
15-12-2006, 12:27
ciao a tutti, ho un esercizio da fare e non so proprio dove mettere le mani...
chi è il santo che mi aiuta? :D

Scrivere un programma in C che riceva in input un insieme di parole (stringhe, possibilmente lette da un file di testo) e produca in output (possibilmente su file) le parole di input ordinate.Praticamente "quasi" la stessa cosa che ha chiesto lucas87 ieri ... :D

Posso darti semmai qualche consiglio utile: innanzitutto puoi allocare dinamicamente un buffer ragionevolmente largo per contenere 1 riga del file di testo.
Poi apri il file di testo, leggi riga per riga e per ogni riga la spezzi per ottenere le singole parole. Ogni parola la copi in un nuovo buffer allocato dinamicamente e la inserisci in un array di puntatori char*, espandendolo man mano che ottieni le parole.
Quindi applichi l'algoritmo di ordinamento, apri il file di output, ci scrivi dentro le parole e infine liberi tutto ciò che è stato allocato.