PDA

View Full Version : [C] STRCPY STRing - Int


max246
07-11-2005, 09:56
Ciao,

sto facendo un programma di "appunti", ho un piccolo problema.... quando cerco di ricavare dal TXT le informazioni:

Oggetto
Descrizione
Ora
Minuti
Giorno
Mese

Nelle prime due informazioni nessun problema.... perche sono CHAR e il STRCPY non da problemi, negli altri campi mi da problemi.... sono INT e con il comando STRCPY s'incazza :P

Ecco il codice


case 2:
strcpy(dati_appunti[x].giorno,phrase);
break;
case 3:
strcpy(dati_appunti[x].mese,phrase);
break;
case 4:
strcpy(dati_appunti[x].ora,phrase);
break;
case 5:
strcpy(dati_appunti[x].minuti,phrase);
break;


Aiuto :help: :help: :help: :muro:

Ziosilvio
07-11-2005, 10:15
A parte il fatto che mi sembra tu stia facendo le copie al contrario, visto che in strcpy il primo argomento è la destinazione, e il secondo è la sorgente...
... poi, strcpy copia stringhe in stringhe, ma se hai un int e devi scriverlo in una stringa, devi usare una funzione che converta l'int in char *: sprintf va bene.

max246
07-11-2005, 12:01
A parte il fatto che mi sembra tu stia facendo le copie al contrario, visto che in strcpy il primo argomento è la destinazione, e il secondo è la sorgente...
... poi, strcpy copia stringhe in stringhe, ma se hai un int e devi scriverlo in una stringa, devi usare una funzione che converta l'int in char *: sprintf va bene.


Em... sintassi? :D

Ziosilvio
07-11-2005, 14:21
sintassi?
La trovi sulle man pages di Linux, sull'help dell'IDE, o sul Kernighan&Ritchie.
Comunque:
char * strcpy(char *dest, const char *src);
int sprintf(char *dest, const char *fmt,...);

max246
07-11-2005, 14:51
La trovi sulle man pages di Linux, sull'help dell'IDE, o sul Kernighan&Ritchie.
Comunque:
char * strcpy(char *dest, const char *src);
int sprintf(char *dest, const char *fmt,...);

percio int numero = sprintf (parola,"%d") ?????

mi sento abbastanza confuso :S

Ziosilvio
07-11-2005, 16:49
percio int numero = sprintf (parola,"%d") ?
No:
sprintf(parola,"%d",valore_numerico);
E guarda (sul K&R) che il valore restituito da sprintf è il numero di conversioni effettuate, e non ha niente a che vedere con i valori numerici convertiti in stringhe.