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.