Hvordan konvertere en Integer til en karakter i C ++

Konvertering et tall til sine ASCII ekvivalenter er en vanlig praksis i programmering. For mange funksjoner, er det nødvendig å manipulere dataformater for å få dem til å fungere. Dessverre gjør C / C ++ ikke tilby en praktisk toString () metode, i motsetning til Java, slik konvertering må gjøres for hånd.

Bruksanvisning

1 Legg ønsket heltall til tegnet '0'. Merk at dette kun gjelder for enkeltsifre 0-9, og fungerer fordi disse tegnene tilfeldigvis er i orden.

int i = 3;

char c = '0' + i;

Nå c er tegnet '3'.

2 Bruk itoa (), en forkortelse for Integer til ASCII. Denne funksjonen vil fungere for alle Windows-plattformer, men er ikke-standard, og vil ikke fungere for Mac eller Linux.

inkluderer <cstdio>

{

int i = 27;

char * str = new char [33];

itoa (i, str, 10);

// 10 indikerer basen 10

}

Nå str er "27".

3 Bruk C ++ bekker. Dette er den mest vanlige metode for konvertering.

inkluderer <sstream>

{

int i = 5;

std :: string s;

std :: stringstream ut;

ut << i;

s = out.str ();

}

Nå er er "5".

Hint

  • Enhver heltall annet enn heltallene 0-9 har mer enn ett siffer, og således må konverteres til en streng (en rekke tegn).
  • Funksjonen itoa () kan også brukes til ikke-desimaltall baser (f.eks endre den siste parameteren til 2, 6, etc. for binære og heksadesimale).
  • Lengden av itoa () s matrisen må beregnes for hånd. Husk at strengene er null-terminert.