C # Programm um klein- zu Grossbuchstaben umzuwandeln?
Hi, ich habe den folgenden Code geschrieben:
Console.WriteLine("Bitte geben Sie hier einen Kleinbuchstaben ein: ");
char firstoutput = Convert.ToChar(Console.ReadLine());
char secondoutput = (char)(firstoutput + 32);
Console.WriteLine("Der Grossbuchstabe lautet : " + Convert.ToString(secondoutput));
Console.ReadLine();
Das hier ist aber mein Output, es fehlt also das Ergebnis:
Bitte geben Sie hier einen Kleinbuchstaben ein:
w
Der Grossbuchstabe lautet :
Was kann ich da tun / verbessern?
Zur info: ich nutze Visual Studio auf einem Mac.
Danke im Voraus
2 Antworten
Nicht +32 sondern -32 :)
Außerdem würde ich eine Überprüfung einbauen ob es sich bei dem Zeichen auch wirklich um ein Buchstaben handelt.
Mein Vorschlag:
Console.WriteLine("Bitte geben Sie hier einen Kleinbuchstaben ein: ");
char firstoutput = Convert.ToChar(Console.ReadLine());
if (firstoutput >= 'a' && firstoutput <= 'z')
{
char secondoutput = (char)(firstoutput - 32);
Console.WriteLine("Der Grossbuchstabe lautet : " + Convert.ToString(secondoutput));
}
else
{
Console.WriteLine("Das ist kein Kleinbuchstabe!");
}
Console.ReadLine();
Beachte dass das nicht mit Umlauten funktioniert... eine andere Variante die auch viel Tipperei sparen wird.
.ToUpper()
Mach es dir nicht so schwer. Schau dir mal dir ToUpper() bzw. ToLower() an. Die Methoden berücksichtigen Unicode und können mit Culture umgehen.
https://learn.microsoft.com/en-us/dotnet/api/system.char.toupper?view=net-7.0
Weiterhin könnte dich die IsUpper() bzw. IsLower() interessieren.
Um festzustellen ob es sich bei einem char um eine Nummer handelt verwende: IsNumber()
https://learn.microsoft.com/en-us/dotnet/api/system.char.isnumber?view=net-7.0
Happy coding
Vielen Dank