Come convertire un intero ad un personaggio in C ++

April 28

Conversione di un numero intero di suoi equivalenti ASCII è una pratica comune nella programmazione. Per molte funzioni, è necessario manipolare i formati di dati per farli funzionare. Purtroppo, C / C ++ non offre un metodo conveniente toString (), a differenza di Java, per cui la conversione deve essere fatto a mano.

istruzione

1 Aggiungere l'intero desiderato al carattere '0'. Si noti che questo funziona solo per le singole cifre 0-9, e funziona perché quei personaggi capita di essere in ordine.

int i = 3;

c char = '0' + i;

Ora c è il carattere '3'.

2 Utilizzare itoa (), abbreviazione di numero intero di ASCII. Questa funzione funziona per tutte le piattaforme Windows, ma non è standard e non funzionerà per Mac o Linux.

includere <cstdio>

{

int i = 27;

char * str = new char [33];

itoa (i, str, 10);

// Il 10 indica base 10

}

Ora str è "27".

3 Utilizzare i flussi di C ++. Questo è il metodo più standard conversione.

includere <sstream>

{

int i = 5;

std :: string s;

std :: stringstream fuori;

out << i;

s = out.str ();

}

Ora S è "5".

Consigli e avvertenze

  • Qualsiasi numero intero diverso interi 0-9 ha più di una cifra, e quindi deve essere convertito in una stringa (un array di caratteri).
  • La itoa funzione () può essere utilizzata anche per le basi non decimali (ad esempio, modificare l'ultimo parametro 2, 6, ecc per binario ed esadecimale).
  • La lunghezza del itoa () 's array deve essere calcolato a mano. Ricordate che le stringhe sono null-terminated.