Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[C] Stringhe

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[C] Stringhe

Messaggioda MaxPower » dom dic 26, 2004 2:36 pm

ho da un paio di giorni iniziato a programmare in c.
sto riscontrando alcune difficoltà ad usare le stringhe per mezzo di puntantore a carattare, in particolare nel passaggio di tale struttura come parametri in funzioni.
cerco di spiegarmi meglio con un esempio ...ho questo main ...

main
char *str1, *str2;
str1 = (char *) malloc(sizeof(char));
f1 (str1);
str2 = (char *) malloc (sizeof(char));
f2 (str1, str2)

alloco memoria per le stringhe nella funzione chiamante ...
f1 e f2 chiamano una stessa funzione f3...
f3 costruisce una stringa a partire dai caratteri digitati da tastiera per mezzo di un while, a cui aggiungo poi il terminatore '\0'.
f2 è pressoché identica a f1 tranne nel fatto che in f2 uso strcmp, affinché str1 sia diversa da str2.
la f1 va bene, la f2 no, ossia mi restituisce nel main una stringa con un carattere in più, uno strano simbolo, come se non avessi aggiunto il terminatore alla stringa str2.
ho utilizzato dei printf nelle diverse funzioni per vedere le stringhe create... str2 termina con un simbolo strano solo nel main...
mi interessa sapere se...
1. è corretto allocare memoria per la stringa solo nella funzione chiamante
2. per inizializzare una stringa, si può usare solo una funzione a void (quindi una procedura) che ha come parametro la stringa, oppure si può usare anche una funzione che punta a char e quindi farle restiuire una stringa con return...


grazie
MaxP
Avatar utente
MaxPower
Senior Member
Senior Member
 
Messaggi: 198
Iscritto il: dom lug 11, 2004 11:11 am

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising