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

    [C] Conversione intero a char[]

    ciao a tutti,

    come posso fare per convertire un intero a 4 byte in un array di char?

    in pratica ho questa situazione:

    Codice PHP:
    int num=150000
    char 
    *buf=malloc(sizeof(4*sizeof(char)));
    //voglio salvare num in buf 
    ho provato ad usare sprintf, ma non credo sia giusto. Non posso usare itoa() poichè non è ANSI C...

    grazie mille

  2. #2
    se vuoi convertire un it in un char* nella tua malloc hai allocato troppa poca memoria, devi allocare un char per ogni cifra più il carattere di terminazione.
    Poi va bene usare la sprintf.
    ciao
    sergio

  3. #3
    il problema è che devo usare per forza 4 char....

    visto che un intero occupa 4 byte e un char 1 byte, mi serviva memorizzare l'infomazione nei 4 char, indipendentemente dal numero che scelgo.

    Ho poca dimestichezza con l'opearore di shift, sai se c'è un modo per farlo?

    grazie mille

  4. #4
    mi spiace ma non ho capito cosa devi fare.
    Se devi semplicemento memorizzare in un char[4] i 4 byte di cui è costituito il tuo int basta che fai

    codice:
      int num = 150000;
    
      char *chr_num = #
      char str[4];
    
      strpy(str, chr_num);

  5. #5

    Re: [C] Conversione intero a char[]

    Originariamente inviato da kily_2001
    ciao a tutti,

    come posso fare per convertire un intero a 4 byte in un array di char?

    in pratica ho questa situazione:

    Codice PHP:
    int num=150000
    char 
    *buf=malloc(sizeof(4*sizeof(char)));
    //voglio salvare num in buf 
    ho provato ad usare sprintf, ma non credo sia giusto. Non posso usare itoa() poichè non è ANSI C...

    grazie mille
    Se vuoi trasformare il numero nei 4 byte che lo compongono, puoi usatre memcpy(dest, src, num_bytes):

    codice:
    int num=150000;
    char *buf=malloc(4*sizeof(char));  //allochi 4 volte lo spazio necessario a salvare un char
    memcpy(buf, &num, 4);   //copia 4 byte dall'indirizzo di num (memcpy vuole un puntatore) a quello di buf
    L'arma più potente che tutti usano contro di te? E' la coscienza. La TUA coscienza.

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.