Ich arbeite an einer kleinen Hausaufgabe und ich soll ein Essensmenü machen. Wie auch immer, mein Schalter funktioniert nicht. Ich versuche, eine einfache Funktion zu verwenden, die ich einen Wert von „Fisch“ passieren kann, „trinken“ oder „Chips“ auf und dann wird es Ausgabe:Switch-Anweisung mit Zeichenfolgen?
"Are you ordering FISH?" (or chips/drink)
Ich kann den Schalter nicht bekommen arbeite, es soll erkennen, was ich hineinlasse und dann einen printf ausgeben, basierend auf dem switch case.
Code:
#include <stdio.h>
void menu() {
printf("\nWelcome to Sunny FISH & CHIPS!\n\n");
printf("######## Fish : Haddock(K) Large(L) | $5.00\n");
printf("# FOOD # Halibut(T) Large(L) | $4.00\n");
printf("######## Chips: Cut(C) Large(L) | $2.00\n");
printf(" Ring(R) Large(L) | $3.00\n");
printf(" | \n");
printf("########## Soft Drinks(S) Large(L) | $2.00\n");
printf("# DRINKS # Coffee(C) Large(L) | $1.75\n");
printf("########## Tea(T) Large(L) | $1.50\n");
printf("---------------------------------------------\n");
printf("Note: Medium price: 80%% of large.\n");
printf(" Small price: 60%% of large.\n");
printf("TAX is 10%%.\n");
printf("More than 5 fish, 10%% discount on drink.\n");
printf("Every 10 fish purchased, get 1 free softdrink.\n");
printf(" - size of drink is according to size of fish\n");
}
void question (char choice[5]) {
switch (choice[5])
{
case choice["fish"]:
printf("Do you order FISH?\n");
case choice["drink"]:
printf("Do you order CHIPS?\n");
case choice["chips"] :
printf("Do you order DRINKS?\n");
default :
printf("Enter a valid choice: \n");
}
}
main() {
// menu();
question("fish");
}
In jedem Fall sollten Sie 'strcmp' verwenden, um sicherzustellen, dass die vollständige Zeichenfolge tatsächlich übereinstimmt. –
@R .. Wie gesagt, dies funktioniert nur dann richtig, wenn jede Wahl einen eindeutigen Buchstaben in einer bestimmten Position hat. –
Das ist ein separates Problem. Mein Punkt ist, dass Ihre Lösung auch andere Zeichenfolgen akzeptiert, die mit demselben Buchstaben beginnen, aber nicht in der Liste enthalten sind. –