C-Problem mit text labyrinth, kann mir jemand helfen?

...komplette Frage anzeigen

3 Antworten

Bei einer scanf-Anweisung brauchst du den Adressoperator "&" beim einlesen von Strings nicht angeben. Bei allen anderen Arten von Variablen schon. Das kommt daher, das bei Strings, also in der C-Programmierung sind das zumeist statische Arrays, sowieso die ersten elemente angesprochen werden, somit entfällt NUR bei Strings bei scanf  das "&"-Zeichen.

Außerdem mußt du mit strcmp die Strings vergleichen und mit dem Rückgabewert von strcmp bei if arbeiten.


Antwort bewerten Vielen Dank für Deine Bewertung

Danke, ich glaube so könnte es funktonieren, aber wird es dann nicht etwas unübersichtlich ?...

      char richtung[15];
int versuch;
system("COLOR 0C");
printf("\\\\n\\\\tDas Labyrinth (produced by Ben Damerow(c))\\\\n\\\\n");
printf("------ HILFE ------\\\\nNorden = north\\\\nWesten = west\\\\nSueden = south\\\\n Osten = ost");
printf("\\\\n\\\\n\\\\nDu befindest dich am Eingang von einem grossen Labyrinth.\\\\n");
printf("du kannst nach norden gehen, \\\\nlinks und rechts sind riesige gruene Hecken und du hast keinen Gegenstand \\\\nbei dir, ");
printf("der dir bei dem Abenteur helfen kann.\\\\n");
do
{
printf("Wo lang moechtest du gehen ?\\\\n>");
gets(richtung);
if(strcmp("north",richtung) == 0)
{
printf("Sie sind nach Norden gegangen. ");
break;
}
else
printf("Hier kannst du nicht lang gehen\\\\n");
versuch--;
}
while(versuch > 0);
printf("Hier fuehrt ein Weg nach westen und einer nach Osten.");
do
{
printf("Wo lang moechtest du gehen ?\\\\n>");
gets(richtung);
if(strcmp("west",richtung) == 0)
{
printf("Sie sind nach westen gegangen. Es fuehrt ein Weg nach Westen und einer nach Norden");
do
{
printf("Wo lang moechtest du gehen ?\\\\n>");
gets(richtung);
if(strcmp("west",richtung) == 0)
{
printf("Sie sind nach Westen gegangen, aber hier geht es wohl nicht weiter\\\\n");
do
{
printf("Wo lang moechtest du gehen ?\\\\n>");
gets(richtung);
if(strcmp("ost",richtung) == 0)
{
printf("Sie sind nach Osten gegangen. ");
break;
}
else
printf("Hier kannst du nicht lang gehen\\\\n");
versuch--;
}
while(versuch > 0);
break;
}
else if(strcmp("north",richtung) == 0)
{
printf("Sie sind nach Norden gegangen. ");
break;
}
else
printf("Hier kannst du nicht lang gehen\\\\n");
versuch--;
}
while(versuch > 0);
break;
}
else if(strcmp("ost",richtung) == 0)
{
printf("Sie sind nach Osten gegangen. ");
break;
}
else
printf("Hier kannst du nicht lang gehen\\\\n");
versuch--;
}
while(versuch > 0);
Antwort bewerten Vielen Dank für Deine Bewertung

Hier mal mein Beispiel dazu:

if((strcmp (richtung, "north")) == 0 )

{

.....................;

}

else if(((strcmp (richtung, "west")) == 0 ) || ((strcmp (richtung, "south")) == 0 ) || ((strcmp (richtung, "ost")) == 0))

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?