View Single Post
Old 07-02-2007, 14:37   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Death By Stereo
1) sarebbe meglio poter inserire parole senza alcun limite prefissato anche se non vorrei complicarmi troppo la vita visto che comunque credo che le esigenze pratiche non superino mai le 1000-2000 parole.
Ok, allora iniziamo col dire che devi usare un array di puntatori a char. Ogni elemento in questo array è un puntatore di tipo char* che punta ad una stringa.

Se si volesse mettere un limite prefissato, si potrebbe fare ad esempio:

char *stringhe[50];

Se le stringhe sono davvero tante o se si vuole fare in modo da poter "allungare" l'array a tempo di esecuzione, è necessario dichiarare l'array in questo modo:

char **stringhe;

stringhe = (char**) calloc (1000, sizeof (char*));


(ho usato calloc perché così almeno la memoria viene inizializzata a 0, i puntatori in pratica sono messi a NULL).

Avendo allocato dinamicamente l'array si potrebbe, durante l'esecuzione, aumentare facilmente la dimensione dell'array.

Comunque una volta che hai l'array, fai un ciclo for al cui interno allochi spazio per ogni singola stringa e poi effettui l'input ad esempio con la funzione fgets().

Quote:
Originariamente inviato da Death By Stereo
2) l'algoritmo quicksort lo devo implementare io, mi è stato espressamente vietato l'uso della funzione già fatta (sapete è un compito dell'università )
Ok, allora ti sarà sicuramente molto utile il link che ti è già stato segnalato su Wikipedia.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso