Char int umwandlung
-
Hallo,
ich habe eine Funktion die benötigt char als Parameter. Nun möchte ich der Funktion eine Zahl übergeben (0-9). Wie wandle ich das jetzt in ein char um? Also nciht das ASCII Zeichen '0', sondern ich möchte eine 0 übergeben.Danke
-
'0' - '0' = 0
'1' - '0' = 1
'2' - '0' = 2
'3' - '0' = 3
'4' - '0' = 4
'5' - '0' = 5
'6' - '0' = 6
'7' - '0' = 7
'8' - '0' = 8
'9' - '0' = 9Bitte unterscheide in Zukunft auch zwischen einer Zahl und einer Ziffer.
-
möchtest du char in int oder int in char?
mfg Luis
-
oh ich hab janjans beitrag erst nacher gelesen aber so hätt ichs auch gemacht
mfg luis
-
int kann implizit nach char gecastet werden, du musst also gar nichts machen. Einfach 0 übergeben.
Explizit kannst du es mit static_cast<char>(0) machen.
-
Athar schrieb:
int kann implizit nach char gecastet werden, du musst also gar nichts machen. Einfach 0 übergeben.
Explizit kannst du es mit static_cast<char>(0) machen.Nur dann hat er nicht das, was er will. Er will nicht casten, sondern konvertieren. Und zwar das Zeichen einer Ziffer in die entsprechende Zahl.
-
Janjan schrieb:
Nur dann hat er nicht das, was er will. Er will nicht casten, sondern konvertieren. Und zwar das Zeichen einer Ziffer in die entsprechende Zahl.
Nö. Er will den Wert 0 an einen char-Parameter übergeben, steht da. Da steht nichts davon, dass er vorher ein Zeichen '0' hat.
-
was soll eigentlich dann im char stehen?
beim impliziten cast in char steht im char natürlich dann nicht '0' sondern 0.
Wenn du den char dann direkt ausgibst, wirst nicht viel sehen. Den müsstest du explizit dann wieder in einen int zurückcasten.so wie ich dich verstanden hab, möchtest du, dass der Wert an sich erhalten bleibt?
void foo(char a) { cout << a << endl; } int main() { int x = 2; foo(x+48); return 0; }