Gå til innhold

Konverter CHAR til INT


Anbefalte innlegg

Videoannonse
Annonse

chars er representert som ints, så du kan bare sette int variabelen din til char variablelen, men om du skal ha f.eks tallene mellom 0-->9 i char til å bli tallene 0-->9 i int må du trekke fra en verdi(48), for int conventeringen blir til ASCII verdien til char'en.

 

(Du finner ascii tabellen på nettet eller i c++ boken din)

Lenke til kommentar

du kan velge mellom mange måter.

 

du kan f.eks bruke atoi, sprintf, stringstreams eller boost::lexical_cast

 

alle har vel sin svakheter og styrker.

 

atoi har f.eks ikke noe errorsjekking men er rask og enkel og bruke. mens boost::lexical_cast er typesafe og har errorsjekking men er ganske treig. hvis du ikke trenger hastiget syns jeg det er den peneste måten.

char a = '2';

int b = boost::lexical_cast<int>(a);

 

se www.boost.org for mer info

 

ellers kan du gjøre som herr_dude sa, men det er tungvindt og stygt syns jeg da.

char a = '2';

int b = a - 48;

Endret av iobas
Lenke til kommentar

char *itoa(int value, char *string, int radix);

og

int atoi(const char *s);

er de enkleste å bruke.

Si du har:

int tall = 5;
char bokstavtall[1] = {'3'};

 

så bruker du atoi ( toi = to int) slik:

tall = atoi(bokstavtall);

 

og itoa slik (ikke spør meg hva radix er, det pleier å funke med 10)

itoa(tall, bokstavtall, 10); // verdien i tall blir konvertert til char

 

itoa og atoi ligger i stdlib.h :)

Lenke til kommentar
Vil det ikke fungere å bare caste char til int ala

char a = '2';
int b = (int)a;

 

Selvsagt ingen error kontroll, men...

 

Da ender du vel opp med tegnsettverdien, som typisk er 0x30 høyere enn verdien.

 

 

Edit: leifer

Endret av haakoo
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...