Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    concatenare un int ad una stringa in C

    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!!!!

  2. #2
    Usa la funzione itoa.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Oppure la sprintf ...

  4. #4
    raga grazie delle risposte,ma come funzione l'itoa?
    potete postarmi qualke esempio?

    grazie......

  5. #5
    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.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    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);

  7. #7
    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.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    grazie ora è tutto chiaro!!!!


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.