C: Wie kann ich das Programm so umgestalten, sodass ich mit "Ja" antworten kann, statt mit "Y"?
Ich habe jetzt diesen Code:
int main()
{
char wand[2];
do {
printf("Ist die Wand da? (Ja | Nein)\n");
scanf("%s", wand);
}
while (wand[0] != 'y' && wand[0] != 'Y');
printf("Drehung\n");
printf("Schritt!!\n");
Ich würde aber gerne statt mit Y zu antworten, mit Ja antworten. Wie geht das?
2 Antworten
Hallo Daniel,
lass dich nicht auf irgendwelche grantigen "Experten" ein, die irgendwas in den Raum werfen und keinen Zentimeter Verständnis für Anfänger zeigen.
hier ist ein Snippet, was deine eigentliche Frage klären sollte:
while (strcasecmp(wand, "ja") != 0 && wand[0] != 'y' && wand[0] != 'Y');
Es besteht jedoch das Problem, dass "char wand[2]" nur Platz für ein einzelnes Zeichen und keinen Null-Byte hat. Wenn du also versuchst, eine Zeichenkette mit zwei Zeichen wie z.b "Ja" in dieses Array einzulesen, wird das Null-Byte außerhalb des Arrays geschrieben, was zu Fehlern führen kann.
Drum ändere bitte auch das "char wand[2]" zu "char wand[4]"
Zudem bitte ich dich, dass wenn du ernsthafte Absichten hast, eine Programmiersprache zu lernen, dass du dir auch Gedanken darum machst, was du tatsächlich damit erreichen möchtest. Für ein bisschen tüfteln, sind alle Programmiersprachen gut. Zudem kann ich aus deinen Kommentaren entnehmen, dass du kaum bis wenig Verständnis für das hast, was du uns fragst. Orientiere dich an irgendwelchen Youtube Playlisten, Bücher oder w3school.
Viel Spaß! :)
Du machst den Array "wand" ausreichend groß (schließenden Null-Charakter beachten) und vergleichst den String dann mit strncmp.
Wie ich ihn ausreichend groß mache und von strncmp habe ich noch nie was gehört :/
Ausreichend groß machst du das, indem du bei der Defionition des Arrays eine passende Grüße angibst.
strncmp ist eine Bibliotheksfunktion. Siehe:
https://pubs.opengroup.org/onlinepubs/000095399/functions/strncmp.html
Wie "Hä"? Kann doch jeder Funktionen schreiben auch du. Hast du sogar schon getan.
Könntest du das evtl in den Code schreiben? verstehe es nicht wirklich