Forum: konvertara...

Forum huvudsida -> Programmering -> konvertara...

Sidor: 1

Till botten

jockepockee 18:52 - 3:e April 2007 | Post #1
Medlem
Inlägg: 192


Skicka PM
jag har sök på internet hela dan och inte hittat något, hur konverterar man en "char" till en "int"?

typ:

char nisse = '1';
int tomte = nisse;


-------------------------





Gazrog2 19:00 - 3:e April 2007 | Post #2
Medlem
Inlägg: 71


Skicka PM
char nisse = 'l';
int tome = (int)nisse;

Tror jag funkar

-------------------------
Ingen signatur!



derfian 20:40 - 3:e April 2007 | Post #3
Medlem
Inlägg: 149


Skicka PM
Du vill använda atoi(). http://cplusplus.com/reference/clibrary/cstdlib/atoi.html


Senast redigerad 20:41 - 3:e April 2007


main 15:09 - 4:e April 2007 | Post #4
Medlem
Inlägg: 40


Skicka PM
Vad menar du med konverterar? Du kan göra en typomvandling eller använda konverteringsfunktioner, det beror på hur du vill formatera dina data.

-------------------------
- Real programmers code in binary



jockepockee 19:27 - 9:e April 2007 | Post #5
Medlem
Inlägg: 192


Skicka PM
tecken till siffra om vi säger så

-------------------------





Burglar 21:17 - 9:e April 2007 | Post #6
Medlem
Inlägg: 59


Skicka PM
Det kallas att "casta", om du vill casta ett tecken till en siffra så ska du göra som Gazrog2 föreslog.

-------------------------
,,hh signatur! jag är skeptisk!



Dread 21:19 - 9:e April 2007 | Post #7
Medlem
Inlägg: 135


Skicka PM
Gazrog2´s borde funka, så får du motsvarande siffra i ASCII-tabellen, om det är det du är ute efter...

-------------------------
c++



ozamosi 21:23 - 9:e April 2007 | Post #8
Administratör
Inlägg: 1129


Skicka PM
Jag tror fortfarande att derfians svar är rätt, för jag tror att det är det jockepockee försöker säga. Hans senaste svar är egentligen inte alls ett svar på mains fråga, och kan likaväl tolkas åt båda håll. Menmen, han märker väl när han testar...

-------------------------
Ljusblå

Senast redigerad 21:23 - 9:e April 2007


derfian 00:07 - 10:e April 2007 | Post #9
Medlem
Inlägg: 149


Skicka PM
    Citat av Dread:
Gazrog2´s borde funka, så får du motsvarande siffra i ASCII-tabellen, om det är det du är ute efter...


Du får bara sådana lustiga fel om inte indatan är KORREKT formaterad. Dessutom tror jag inte att det går bra om man skriver in ett negativt tal.

char -> int? atoi.

Citat från cplusplus.com:
Convert string to integer

Parses the C string str interpreting its content as an integral number, which is returned as an int value.

The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an optional initial plus or minus sign followed by as many numerical digits as possible, and interprets them as a numerical value.

The string can contain additional characters after those that form the integral number, which are ignored and have no effect on the behavior of this function.

If the first sequence of non-whitespace characters in str is not a valid integral number, or if no such sequence exists because either str is empty or it contains only whitespace characters, no conversion is performed.



Senast redigerad 00:08 - 10:e April 2007


sdac 14:12 - 13:e April 2007 | Post #10
Medlem
Inlägg: 235


Skicka PM
Det går inte att konvertera en char till en integer via atoi()... Den tar en pekare till en null-avslutad sträng, skickar du adressen bli innehållet fel, skickar du innehållet försöker den referera till det som en pekare och grattis, du har en segfault.

För att konvertera en char som man vet innehåller ett tal mellan 0 och 9 kan man göra:
char c = '1';
int n = c-48;

Annars funkar atoi() bra vid strängar.

Vid casting for att få ascii-värdet borde även negativa bokstäver fungera, och ge ett värde mellan eller lika med 128 och 255. Om jag inte missminner är char och unsigned char ekvivalenta enligt standarden.

Edit: La till åäö


Senast redigerad 12:48 - 15:e April 2007


Sidor: 1

Forum huvudsida -> Programmering -> konvertara...
Atom feed

Du får inte posta i den här tråden | Till toppen