ASCII to int

hiho,

ich will ASCII-Zeichen in ihre Dezimal-Zahl umkonvertieren (zbs. a in 97) … im Prinzip könnte man so eine Routine ja selber schreiben … aber wieso das Rad zweimal erfinden ?

gibts so einen „Konverter“ vielleicht schon in den Standart-Bilbiotheken ?

gruss

berni

In C/C++ ist der Datentyp char auch nur ein Integer-Typ. Ein ch=‚a‘ ist also genau das gleiche wie ein ch=97. Umwandlung nicht noetig. Es kommt nur darauf an, wie Du den Inhalt interpretierst, ob als Zeichen oder Zahl.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich will ASCII-Zeichen in ihre Dezimal-Zahl umkonvertieren
(zbs. a in 97) … im Prinzip könnte man so eine Routine ja
selber schreiben … aber wieso das Rad zweimal erfinden ?

Also, in C/C++ sind die Zeichen vom Typ „int“.

z.B.

int i;

i = getch();

// Du gibst eine Taste, z.b. „a“ ein.
// i hat nun den Wert 97.
Machst du ein fprintf("%c", i); gibt das auf dem Screen ein „a“.
Machst du ein fprintf("%i", i); gibt das auf dem Screen eine 97.

Somit ist keine Konvertierung nötig !

Probleme gibt es nur, wenn Du eine Ziffer als char einliest und dann später damit rechnen möchtest.
Statt „1“ hast Du dann den Wert „49“.
In diesem Fall würde ich einfach 48 vom Char-Wert abziehen…

Aufruf in der Standardbibliothek:

#include

int atoi(const char *nptr);

Gruss, Moriarty

Moin,

ich will ASCII-Zeichen in ihre Dezimal-Zahl umkonvertieren
(zbs. a in 97) … im Prinzip könnte man so eine Routine ja
selber schreiben … aber wieso das Rad zweimal erfinden ?

Also, in C/C++ sind die Zeichen vom Typ „int“.

Üblicherweise sind sie vom Typ char, und aus reiner Anständigkeit sollte man auch immer explizit casten.

Thorsten

Moin,

In diesem Fall würde ich einfach 48 vom Char-Wert abziehen…

Üblicherweise sollte man ‚0‘ abziehen.

Thorsten

Moin,

In diesem Fall würde ich einfach 48 vom Char-Wert abziehen…

Üblicherweise sollte man ‚0‘ abziehen.

Stimmt, ist natürlich besser…