View Single Post
Old 27-10-2008, 17:08   #1
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1843
[C] Stringhe, piccolo problemino

Mi sono bloccato su una cosa che credo sia di facile risoluzione, solo che è qualche anno che non programmo in c e non mi ricordo alcune cose.

Io devo manipolare delle stringhe, l'utente inserisce delle parole e per ognuna di queste devo creare un elemento di una lista che le contiene.

Posso usare lo strncpy per farlo anche se le parole sono di lunghezza diversa?
Quando vado a stampare la lista le parole sono seguite dall'immondizia che c'è nella zona di memoria non occupata ma allocata della stringa, io pensavo si fermasse al /0.

La struttura è semplice ed è questa:
Codice:
struct elemento {
   char parolaValida[20];
   struct elemento *next;
   struct elemento *prec;
};
Se in parolaValida ci metto l'ultima parola che è supponiamo di 5 lettere che comando devo utilizzare?
Quando stampo uso il printf("%s");


Grazie.


edit: ho scoperto che usando la strcpy invece della strncpy funziona bene, non vorrei però aver affrontato il problema con una logica sbagliata. Io dovrò poi estrarre la prima e l'ultima lettera delle parole e devo verificare anche che non siano inseriti caratteri non validi, prima di andare avanti vi chiedo se può andar bene leggere le stringhe con lo scanf oppure se devo per forza usare il getchar (o come si chiama) e verificare lettera per lettera.

Ultima modifica di -Ivan- : 27-10-2008 alle 17:43.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso