PDA

Visualizza la versione completa : [C] Concatenare un int ad una stringa


darietto83
10-10-2006, 19:57
ciao a tutti ho 1 problema

ho 3 variabili int che contengono rispettivamente anno,mese,giorno
devo creare un'unica stringa che contiene "anno-mese-giorno" come posso fare?

grazie anticipatamente a tutti!!!!

MItaly
10-10-2006, 20:27
Usa la funzione itoa.

oregon
10-10-2006, 21:25
Oppure la sprintf ...

darietto83
11-10-2006, 12:57
raga grazie delle risposte,ma come funzione l'itoa?
potete postarmi qualke esempio?

grazie......

MItaly
11-10-2006, 13:24
char buffer[11]="\0";
unsigned int year;
unsigned int month;
unsigned int day;
//vengono valorizzati day, month e year...
year=2006;
month=12;
day=19;
//Controlli di base
if (year>9999 || year<1 || month>12 || month<1 || day>31 || day<0)
{
printf("Errore: dati non validi.");
return 1; //Supponendo di essere in main().
}
itoa(day,buffer,10);
buffer[2]='/';
itoa(month,buffer+3,10);
buffer[5]='/';
itoa(year,buffer+6,10);
printf(buffer);

oregon
11-10-2006, 14:51
Oppure, con la sprintf (anche se sarebbe meglio adottare la versione sicura ...), il codice appena suggerito da MItaly diventa



char buffer[11]="\0";
unsigned int year;
unsigned int month;
unsigned int day;
//vengono valorizzati day, month e year...
year=2006;
month=12;
day=19;
//Controlli di base
if (year>9999 || year<1 || month>12 || month<1 || day>31 || day<0)
{
printf("Errore: dati non validi.");
return 1; //Supponendo di essere in main().
}

sprintf(buffer, "%02d/%02d/%04d", day, month, year);
printf(buffer);

MItaly
11-10-2006, 14:56
Originariamente inviato da oregon
(anche se sarebbe meglio adottare la versione sicura ...)

I "controlli di base" sono lė pių che per evitare date scorrette (uno potrebbe inserire senza problemi un 31 di Febbraio e il programma non farebbe una grinza) per evitare numeri con pių di due/quattro cifre che farebbero sforare dal buffer.

darietto83
11-10-2006, 15:10
grazie ora č tutto chiaro!!!!

:ciauz:

Loading