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!!!!
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!!!!
Usa la funzione itoa.
Amaro C++, il gusto pieno dell'undefined behavior.
raga grazie delle risposte,ma come funzione l'itoa?
potete postarmi qualke esempio?
grazie......
codice: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);
Amaro C++, il gusto pieno dell'undefined behavior.
Oppure, con la sprintf (anche se sarebbe meglio adottare la versione sicura ...), il codice appena suggerito da MItaly diventa
codice: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);
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.Originariamente inviato da oregon
(anche se sarebbe meglio adottare la versione sicura ...)
Amaro C++, il gusto pieno dell'undefined behavior.
grazie ora è tutto chiaro!!!!