Permalänk

char to int

Tror inte att följande problem är särskilt svårt men min fantasi börjar ta slut och likaså mitt tålamod.

Jag har en character array som ser ut såhär:

x[32]

i denna finns ett antal siffror som jag vill göra om till integers. Tex:

x[0] = '2';
x[1] = '4';
x[2] = '5';
... resten är tomma.

jag vill göra om detta till heltalet 245. Hur ska jag göra?

Visa signatur

And on the seventh day, god stepped back and said: "There is my creation, perfect in every way... oh, dammit I left pot all over the place. Now they'll think I want them to smoke it... Now I have to create republicans." - Bill Hicks

Permalänk
Medlem

Det lilla lustiga är att det redan är ordinära tal.
Skriv ut dem som sådana.
Tänk på att åäö blir negativa om du inte talar om att det är unsigned.
I C finns inga tecken och strängar, allt är ordinära tal

Visa signatur

/ Assar

Permalänk
Citat:

Ursprungligen inskrivet av Assar
Det lilla lustiga är att det redan är ordinära tal.
Skriv ut dem som sådana.
Tänk på att åäö blir negativa om du inte talar om att det är unsigned.
I C finns inga tecken och strängar, allt är ordinära tal

men grejen är att om jag gör på följande vis:

x[0] = '4';

int siffra = x[0];

så blir siffra = 52

Antar att detta är ANSI-koden för '4', men hur gör jag om den till 4?

Visa signatur

And on the seventh day, god stepped back and said: "There is my creation, perfect in every way... oh, dammit I left pot all over the place. Now they'll think I want them to smoke it... Now I have to create republicans." - Bill Hicks

Permalänk
Medlem

Ledtråd:
'4' - '0' = 4
'8' - '0' = 8
osv...

Visa signatur

//cykze

Permalänk
Medlem

Jag har samma problem. Har inte orkat lösa det.. men ta en titt på funktionen atoi()
..och säg gärna till när du har en lösning

edit: Körde på cykes förslag:

#include <iostream> using namespace std; int main() { char x[3]; x[0] = '2'; x[1] = '4'; x[2] = '4'; int d = (x[0] - '0'); cout << d * 2 << endl; return 0; }

..kanske.. ? Funkar ialla fall

Visa signatur

Linux är inget operativsystem.
http://www.gnu.org/gnu/linux-and-gnu.html

Permalänk
Medlem

#include <sstream> template <typename Type1,typename Type2> Type1 Convert(const Type2 &_rValue) { std::stringstream Stream; Type1 Type; Stream << _rValue; Stream >> Type; return Type; } ... char x[32] = { 0 }; x[0] = '2'; x[1] = '4'; x[2] = '5'; int y = Convert<int>(x);

Visa signatur

Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots

Permalänk
Citat:

Ursprungligen inskrivet av JoooN
Jag har samma problem. Har inte orkat lösa det.. men ta en titt på funktionen atoi()
..och säg gärna till när du har en lösning

Tackar atoi() löste problemet!

int siffra = atoi(x);

funkade prima för mig

Visa signatur

And on the seventh day, god stepped back and said: "There is my creation, perfect in every way... oh, dammit I left pot all over the place. Now they'll think I want them to smoke it... Now I have to create republicans." - Bill Hicks