Wie kann man diese Aufgabe in C programmieren?
Schreiben Sie ein Programm, das aus einem eingegebenen Großbuchstaben (A-Z) den passenden Kleinbuchstaben und aus einem eingegebenen Kleinbuchstaben (a-z) den passenden Großbuchstaben macht.
Gibt der Benutzer ein anderes Zeichen ein, sagen Sie ihm das. Es gibt viele mögliche Implementierungen, zum Beispiel ASCII-Offset oder das Nutzen eines bitweisen Operators.
Bitte nutzen Sie keine Kontrollstrukturen zur Lösung (wie switch oder if), mit denen Sie Buchstabe für Buchstabe durchgehen.
Die Ausgabe könnte so aussehen:
Bitte geben Sie einen Buchstaben ein!
w Großer Buchstabe = W
oder
Bitte geben Sie einen Buchstaben ein!
W kleiner Buchstabe = w
Schaffe das nur mit Kontrollstrukturen, die sind aber nicht erlaubt.
Bedanke mich für jede Hilfe
3 Antworten
Schaffe das nur mit Kontrollstrukturen, die sind aber nicht erlaubt.
Nein nein, Kontrollstrukturen sind laut dem Text schon erlaubt
Du sollst nur nicht Konstrukte bauen, die so (als Pseudocode) aussehen :
if c = "a":
return "A"
if c == "b":
return "B"
...
if c == "Z":
return "z"
Wie kann man diese Aufgabe in C programmieren?
Ich würde überprüfen, ob der ASCII-Wert im Bereich der Kleinbuchstaben, Großbuchstaben oder anderen Zeichen ist und diesen dann dementsprechend verändern (Veränderung des Wertes um 32)
Ich hab es so ist das so richtig , der Code funktioniert, aber es benutzt halt kontrollstrukturen.
Wie gesagt, Kontrollstrukturen sind im allgemeinen nicht schlimm ... Es geht nur darum, dass du nicht von Hand alle möglichen Kombinationen abfragen sollst
Dir fehlt noch ein Teil:
Gibt der Benutzer ein anderes Zeichen ein, sagen Sie ihm das.
Achso ja, könntest du mir sagen wie das funktioniert, weiß leider nicht wie das geht.
Achso ja, könntest du mir sagen wie das funktioniert, weiß leider nicht wie das geht.
du hast doch schon dein if-else if ...
Jetzt machst du noch einen else-Block, der alle anderen Fälle abdeckt, und machst eine entsprechende Aussage
Wie würde diese Aussage aussehen, wenn man zum Beispiel / oder ) eingibt. Ich könnte höchstens verhindern, dass der Benutzer eine Zahl eingeben könnte, aber nicht so ein Zeichen wie /.
Wie würde diese Aussage aussehen, wenn man zum Beispiel / oder ) eingibt. Ich könnte höchstens verhindern, dass der Benutzer eine Zahl eingeben könnte, aber nicht so ein Zeichen wie /.
Und waurm nicht? Alles, was nicht in einem der if-Blöcke ist, fällt in den else-Block ...
Ja aber wie kann ich verhindern, dass jemand / oder ? oder § eingibt
du sollst es ja nicht verhindern, sondern nur eine entsprechende Aussage machen
" -> ' Klammern ==
Gesundheit. Das war nicht als valider C-Code, sondern als Pseudocode gedacht, um ein Beispiel zu geben. Extra für dich setz ich noch den Hinweis in die Antwort ;)
Aber nicht jeder kennt sich so gut aus... Sonst würde ja auch keiner Fragen stellen
Aber nicht jeder kennt sich so gut aus... Sonst würde ja auch keiner Fragen stellen
offensichtlich, aber hier geht es um den Sinn dahinter, da ist die genaue Syntax nebensächlich ...
Bitte nutzen Sie keine Kontrollstrukturen zur Lösung (wie switch oder if), mit denen Sie Buchstabe für Buchstabe durchgehen.
Machs nicht.
klein in groß Buchstabe: char c = 'a';
char C = c-32;
groß in klein:
char C = 'A';
char c = C + 32
Könntest du mir deinen Kommentar etwas genauer erklären, wäre sehr dankbar dafür.
Die Programmiersprache C kennt die Befehle "toupper()" und "tolower()".
Damit wird ein gegebener Grossbuchstabe in den zugehörigen Kleinbuchstaben bzw. umgekehrt umgewandelt.
Ich hab es so ist das so richtig , der Code funktioniert, aber es benutzt halt kontrollstrukturen.
#include <stdio.h>
int main(void)
{
int Zeichen;
printf("Bitte geben Sie einen Buchstaben ein! ");
do {
Zeichen = getchar();
if (Zeichen >= 'a' && Zeichen <= 'z') { // klein wird gross
printf("Großer Buchstabe = %c", (Zeichen + 'A' - 'a'));
}
else if (Zeichen >= 'A' && Zeichen <= 'Z')
{ // klein wird gross
printf("Kleiner Buchstabe = %c", (Zeichen + 'a' - 'A'));
}
}
while (Zeichen != '\n');
return 0;
}