Kleinbuchstaben in Großbuchstaben umwandeln
-
Dieser Beitrag wurde gelöscht!
-
Bei einer Rechenoperation wie
eingabe - 32
findet eine sogenannte Integer-Promotion statt. Es wird immer mindestens mit der Größe von Integer (int) gerechnet. Das Ergebnis voneingabe - 32
ist also einint
, keinchar
mehr.Was kannst du tun?
a) subtrahiere die 32 erst:
cin >> eingabe; char als_grossbuchstabe = eingabe - 32; cout << "Eingegeben: " << als_grossbuchstabe << endl;
Oder verwende einen Typecast (nicht so schön):
cout << "Eingegeben: " << static_cast<char>(eingabe - 32) << endl;
Du solltest vorher vielleicht auch noch sicherstellen, dass ein Zeichen von a..z eingegeben wurde.
PS: ich möchte dich auch noch auf https://en.cppreference.com/w/cpp/string/byte/toupper hinweisen. Aber auch da Achtung, auch da tritt
int
auf, wo manchar
vermuten könnte.Schau hier für die Regeln: https://en.cppreference.com/w/cpp/language/implicit_conversion (Abschnitt "Integral promotion" - Zitat "In particular, arithmetic operators do not accept types smaller than int as arguments, and integral promotions are automatically applied")
-
Dieser Beitrag wurde gelöscht!
-
@Sunix Hä? Und was ist der Zusammenhang zur Frage?
-
Dieser Beitrag wurde gelöscht!
-
@wob Vielen lieben Dank! Hat mir aufjedenfall weitergeholfen.
Jetzt verinnerliche ich das nochmal und mache mich dann ran an mein zweites Projekt!
-
Dieser Beitrag wurde gelöscht!