C++ einfaches Programm, benötige Hilfe?

... komplette Frage anzeigen

2 Antworten

Buchstaben werden in der EDV im allgemeinen im ASCII Code gespeichert.

American Standard Code for Information Interchange

Die zugehörige Tabelle kannst Du Dir überall im Netz besorgen.

https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#ASCII-Tabelle

Darin ist jeder Buchstabe und eine Reihe von Sonderzeichen jeweils mit einem byte (8bit) hinterlegt.

Beispiel: Der Buchstabe 'a'  ist mit 0x61 oder '0110 0001' codiert.

Nun versteht man unter Datentyp casting in C++ eine Typumwandlung. Du weist einer Variable vom Typ char ein Zeichen zu wie z.B. das 'a'. Dann vollziehst Du einen cast, also eine Typumwandlung in beispielsweise int. Das weist den Compiler an, in der eingebauten ASCII-Tabelle für Dich den Code 0x61 des Buchstabens 'a' herauszusuchen und abzulegen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von RakonDark
17.11.2016, 14:05

ganz so anstrengend ist es ja nicht .

das system guckt doch nicht in der tabelle nach welcher buchstabe zu welchem wert gehört , das macht nur die anzeige .

der wert ist ja schon als ASCII Int Wert gespeichert , auch im string bzw char .

praktisch wird nur der typ gewandelt , wenn es UTF8 wäre wäre es als 2 byte etc gespeichert , auch da guckt nur die ansicht für die darstellung nach  .  wobei beim cast natülrich nur das letzte byte als typ int genommen würde, fals das geht , das kann dann natürlich zu völlig anderen zeichen später führen bei der ansicht , da ASCI ungleich einiger anderer Zeichensätze sein könnte  . 

char = "a"  ist ja schon genau das byte 0x61 , ergo wird nur der typ gewandelt und nichts nachgeguckt .


0

Wenn man ein Zeichen von der Tastatur mit input_char = getchar(); einliest, ist das erst mal ein Datentyp "int". Die Variable entspricht 1:1 dem ASCII Code, entweder 8 Bit oder 7 Bit breit.

Zur sicheren Umwandlung auf 8 Bit schreibt man (unsigned char) input_char und auf 7 Bit (unsigned char) (input_char & 0x7F).

Zur Darstellung des ASCII Codes wird einfach der Inhalt der Variablen in Textform gewandelt, z.B. in hexadezimaler Form folgendermassen

printf ( "ASCII Code lautet 0x%02x\\n",  (unsigned char) input_char );

Das ist einfacher, als für den ASCII Code extra eine Tabelle anzulegen.

Antwort bewerten Vielen Dank für Deine Bewertung