PDA

Visualizza la versione completa : [C] Far ritornare una stringa add una funzione ?


nightfall
04-12-2003, 20:07
Come si fa' a dare come ritorno di una funzione una stringa...

Io ho la mia funzione
char *miaFunz (void) {
char str[22];
gets(str);

}

devo far ritornare la variabile str

V1RuZ
04-12-2003, 20:15
return str; no?

nightfall
04-12-2003, 20:23
Potrebbe essere ma poi come la assegno ad una variabile nel main

void main() {
char *str2;
str2 = miaFunz()
}
Non Funziona !

}gu|do[z]{ой
04-12-2003, 20:51
sinceramente non sono esperto di C... ma credo che dovresti restituire l'indirizzo al primo carattere della stringa...

zaknafein
04-12-2003, 21:24
La stringa la devi passare per puntatore... prova in questo modo:

void miaFunz(char *str) {
/* str=...;
fai le operazioni che vuoi sulla tua stringa */
}

void main(void) {
miaFunz(str); /* passo la stringa per indirizzo
analogo a miaFunz(&str[0]); */
}

Devi far passare l'indirizzo della stringa, se poi lo vuoi usare solo in lettura ti conviene mettere una parola chiave const per evitare che si venga a modificare la tua stringa :)

V1RuZ
05-12-2003, 00:47
Originariamente inviato da nightfall
Potrebbe essere ma poi come la assegno ad una variabile nel main

void main() {
char *str2;
str2 = miaFunz()
}
Non Funziona !

Che significa non funziona? Postate sempre l'errore!!!!
Devi mettere che la funzione restituisce un puntatore



char* m;

m = miaFunz();

char* miaFunz(){
char *mia = "miastringa";
return mia;
}

Loading