Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?
Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?
Von einem ASCII-Zeichen den ASCII-Code zu erhalten, ist nicht schwer. Man braucht dafür lediglich das Zeichen in einer int-Variablen zu speichern. Aber wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?
Du speicherst den Wert in ein "char".
Aber richtigerweise muss man sagen, dass der Computer keine ASCII-Zeichen kennt, bzw sich nicht dafür interessiert. Die Zeichen sind für uns Menschen zum lesen. Irgendwann wurde dann eine Tabelle definiert, die den Zeichen eine Nummer zuordnet. Mit dieser Nummer arbeitet der Computer. Soll denn das ganze Angezeigt werden, kramt der Computer die Tabelle raus und Zeichnet was auch immer er hinterlegt hat auf deinen Bildschirm.
Daher ist auch ein Konstrukt wie
gültig, da '0' durch den Compiler durch die entsprechende Nummer ausgetauscht wird.
Aber richtigerweise muss man sagen, dass der Computer keine ASCII-Zeichen kennt, bzw sich nicht dafür interessiert. Die Zeichen sind für uns Menschen zum lesen. Irgendwann wurde dann eine Tabelle definiert, die den Zeichen eine Nummer zuordnet. Mit dieser Nummer arbeitet der Computer. Soll denn das ganze Angezeigt werden, kramt der Computer die Tabelle raus und Zeichnet was auch immer er hinterlegt hat auf deinen Bildschirm.
Daher ist auch ein Konstrukt wie
Code: Alles auswählen
int a = '0' + 5;
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?
Ich glaube, du hast mich missverstanden. Ich habe die Zahl (wie sie in der ASCII-Tabelle steht) und will den zugehörigen Buchstaben (aus der Tabelle haben). Dabei will ich vermeiden, die ASCII-Tabelle hart zu codieren.
Re: Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?
Nö, hat er nicht.
Ein char ist in C nicht wirklich ein ASCII-Zeichen. Ein char ist ein Integer, der groß genug ist, den Wert eines Zeichens zu speichern. Deswegen ist
char a = 'a',
char a = (char) 97,
char a = '\141'
in C alles dasselbe (und deswegen kannst Du in C mit char-Variablen auch "ganz normal" rechnen). Die Konvertierung, die Du suchst, gibt's nicht. Ob der char nun ein Buchstabe oder eine Zahl ist, entscheide(s)t sich/Du erst, wenn Du den Wert ein- oder ausgibst (also z.B. entweder ein "%c" oder ein "%d" in einen Formatstring schreibst).
Versuch' beispielsweise mal
Code: Alles auswählen
printf("A=%d (%c)\n", 'A', 'A');
It's as simple as that. And remember, Beethoven wrote his first symphony in C.