Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Orioner
Beiträge: 102
Registriert: Mo Dez 10, 2012 10:52 am

Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?

Beitrag von Orioner » Sa Aug 29, 2020 5:34 pm

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?

Benutzeravatar
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?

Beitrag von cloidnerux » Sa Aug 29, 2020 8:49 pm

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

Code: Alles auswählen

int a = '0' + 5;
gültig, da '0' durch den Compiler durch die entsprechende Nummer ausgetauscht wird.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Orioner
Beiträge: 102
Registriert: Mo Dez 10, 2012 10:52 am

Re: Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?

Beitrag von Orioner » Sa Aug 29, 2020 9:37 pm

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.

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: Wie bekomme ich von einem ASCII-Code das zugehörige ASCII-Zeichen?

Beitrag von mfro » So Aug 30, 2020 10:29 am

Orioner hat geschrieben:
Sa Aug 29, 2020 9:37 pm
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.
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');
(Extrapunkte, wenn einer sagt, warum das - auch bei der höchsten Warningstufe des Compilers - keine solche auswirft)
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

Antworten