Gå til innhold

Konverter CHAR til INT


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

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)

Skrevet

eh... er ikke helt sikker på om jeg var med på dette

Finnes det ikke en tilsvarende funksjon som "parseInt" i Java??

 

hvis jeg har:

 

char tegn = '2'

 

hvordan får jeg

 

int tall = 2??

 

Marthe

Skrevet (endret)

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
Skrevet

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 :)

Skrevet

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

 

det er hvilken base tallet skal bli konvertert til. 10 er vanlig desimal, 16 er hex osv.

Skrevet (endret)
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

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å
×
×
  • Opprett ny...