webForumDet fria alternativet

Konvertera char till int

5 svar · 563 visningar · startad av LilleSkutt

LilleSkuttMedlem sedan feb. 2001265 inlägg
#1

Hur gör jag för att konvertera en char till en int? :q

Jag har provat med atoi(); och att casta... Men inget av det går.

När jag försöker använda atoi(); klagar kompilatorn på att funktionen inte finns. Biblioteket som den ligger i är väl stdlib.h?

------------------
---
/* LilleSkutt */

UlfTMedlem sedan maj 20018 027 inlägg
#2

atoi() konverterar en nullterminerad sträng till en int. En char är faktiskt något helt annat. atoi() är deklarerad enligt nedan:

int atoi(const char *);

Det innebär att den tar inte en char som argument, den tar en pekare till en char. Denna pekare ska peka på första tecknet i en nullterminerad sträng.

LilleSkuttMedlem sedan feb. 2001265 inlägg
#3

OK, men hur konverterar jag då en char till en int? Går det inte?

-redigerat-
Så här kanske? :)

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
int i;
char[2] c;

cin.getline(c, 2);

i = atoi(c);

:q

------------------
---
/* LilleSkutt */

[Redigerat av LilleSkutt den 01 okt 2001]

UlfTMedlem sedan maj 20018 027 inlägg
#4

Eller kanske såhär:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">int i;
char c[2];

cin >> c[0];

c[1] = '\0'; // För att nullterminera strängen

i = atoi(c);

[Redigerat av UlfT den 02 okt 2001]

spangoMedlem sedan juni 20008 205 inlägg
#5

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
char foo;
cin >> foo;
int bar = c - '0';

Funkar dock inte på system med EBCDIC, har jag för mig ;)

------------------
And remember, when you look into the pit, the pit looks back into you. /Anonymous INTERCAL hacker

LilleSkuttMedlem sedan feb. 2001265 inlägg
#6

Ok, tack för era förslag, nu har jag fått allt att funka, utom en grej.

Jag använde mig av cin.getline(inStr, 10); för att endast läsa de 10 första tecknen som användaren skrev in, och det gick jättebra. När jag använda Borlands kompilator. Men nu när jag använder Dev-C++ funkar det inte, den hittar inte funktionen. Finns det något sätt att göra likadant när man använder Dev-C++?

------------------
---
/* LilleSkutt */

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)