Integer zu char

Gast #5701396
Lesenswert?

Ich habe eine ASCII Code in einer Integer Variable, diese möchte ich in 
das entsprechende Zeichen umwandeln. Natürlich wiess ich, wie man das 
castet, aber ich habe eine interessante Alternative entdeckt:
1
int hexCode=65;
2
char c=char(hexCode);  // c ist 'e'

Das klappt auch, jedoch konnte ich nirgends die Doku dieser char() 
Funktion finden. Ist das überhaupt eine Funktion?
Gast #5701413
Lesenswert?

g457 schrieb:
>> Natürlich wiess ich, wie man das castet [..]
> Das glaube ich Dir nicht.

In C:  char c=(char)hexCode;

In C++:  char c=static_cast<char>(hexCode);

>> Ist char() überhaupt eine Funktion?
> Nein, natürlich nicht.

Was dann?

Normalerweise kann die IDE zum zugehörigen Quelltext springen, aber hier 
geht das leider nicht.
Gast #5701419
Lesenswert?

"functional cast expression"

https://en.cppreference.com/w/cpp/language/explicit_cast

2) The functional cast expression consists of a simple type specifier or 
a typedef specifier (in other words, a single-word type name: unsigned 
int(expression) or int*(expression) are not valid), followed by a single 
expression in parentheses. This cast expression is exactly equivalent to 
the corresponding C-style cast expression.
Gast #5701435
Lesenswert?

zitter_ned_aso schrieb:
> Bei mir kam zuerst 'F' raus.

Sorry, die 65 ist natürlich eine Dezimalzahl. Ich korrigiere die 
unabsichtliche Irreführung mal:
1
int asciiCode=65;
2
char c=char(asciiCode);  // c ist 'e'

Richtig interessant finde ich, dass hier keine Warnung "implicit 
conversion loses integer precision: 'int' to 'char'" erscheint.

@Flotzenplotz:
Dein Link hilft mir weiter, ohne deine Hilfe hätte ich das wohl den 
ganzen Abend lang vergeblich gesucht.
#5701638
Lesenswert?

Stefanus F. schrieb:
> Richtig interessant finde ich, dass hier keine Warnung "implicit
> conversion loses integer precision: 'int' to 'char'" erscheint.

Waurm sollte sie? Ist ja keine implizite Konvertierung.

Diese Art von Cast ergibt sich einfach daraus, dass man sich für Klassen 
Konstruktoren definieren kann, die man genau so zum Konvertieren 
benutzen kann. Und für die eingebauten Typen hat man die gleiche Form 
der Konvertierung zugelassen, auch wenn es dort eigentlich keinen 
Konstruktor gibt. Daher würde ich es umgangssprachlich eher als 
"constructor-style cast" bezeichnen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren