C++ Buchstabe in ASCII konvertieren
-
Hallo zusammen,
ich bin grad mal wieder am rumbasteln und wollte nen kleines Programm schreiben, das mir quasi
zu eingebenen Buchstaben den ASCII Wert nennt. Also z.B. wäre A dann 065 usw. (link zur tabelle: http://www.jimprice.com/ascii-0-127.jpg)
Allerdings hab nicht wirklich ne Idee wie das Anstellen könnte, ausser mit nem ewig langen Array:string convertControlCharacters[MAX] = { "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK"}; //und so weiter
Dann könnte ich quasi die Nummer herausfinden an der das entsprechende Zeichen im Array steht (also SOH wäre ja dann an Stelle 001 und gleichzeitig
der richtige ASCII-Wert)
Aber da gibt es doch sicher noch ne bessere Lösung, als den ganzen Kram abzutippen, oder? (mir fällt leider keine ein, bzw kein passender
suchbegriff). Allerdings müsste es auch möglich sein(bei dem evtl Lösungsvorschlag), ein Zahl wieder dem Buchstaben zuzuordnen (also 001 wird zu SOH).Hoffe ihr versteht meine Fragestellung
Ansonsten schon mal Danke für alle AntwortenViele Grüße
Cyax
-
Du kannst einfach einen Buchstaben nach int casten, dann hast du den ASCII Code.
-
Oh ja stimmt, hab ich nicht dran gedacht...
wäre das dann so in etwa, oder:atoi( string.c_str() )
?
-
Nein.
Ein Buchstaben mit einem Cast zu einem int casten.char c; // read c int code = c; // print ASCII code
-
Danke für die Hilfe
passt indemfall und Thema erledigt
-
Nathan schrieb:
Nein.
Ein Buchstaben mit einem Cast zu einem int casten.char c; // read c int code = c; // print ASCII code
Oder ohne Umweg:
char c; Ausgabe( static_cast<int>(c) );
Oder kürzer, da hier unproblematisch:
char c; Ausgabe( (int) c );
-
Mit den gezeigten Lösungen kann int auch negativ werden. Besser:
char c; Ausgabe(static_cast<int>(static_cast<unsigned char>(c)))
oder
char c; Ausgabe( (int)(unsigned char) c )