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 Antworten

    Viele 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


  • Mod

    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 )
    

Log in to reply