Seite 1 von 1

Fehler bei meiner Funktion

Verfasst: Di Okt 11, 2011 8:43 pm
von Kmitska
Hallochen,

Also ich habe hier versucht eine Funktion zu erstellen, die ein Wort aus der String rausholt.

z.B. gebe ich: "Hallo wie gehts?" ein und will "wie" bekommen und setze dafür diese Funktion ein: GetArgument(2, "Hallo wie gehts?");

Code: Alles auswählen

char* GetArgument( int ArgNumber, char Cmd[])
{
    int StartPos = GetArgumentPos( ArgNumber, Cmd );
    char Arg[100];

    for(int i=StartPos; i<=strlen(Cmd); i++)
    {
        if( (Cmd[i] == ' ') && (Cmd[i] != '\0'))
        {
            return Arg;
        }
        else
        {
            strncat ( Arg, &Cmd[i], 1);
        }
    }
}
Hier noch das eingesetzte: "GetArgumentPos( ArgNumber, Cmd )":

Code: Alles auswählen

int GetArgumentPos(int ArgNum, char Cmd[] )
{
    for(int i=0; i<=strlen(Cmd); i++)
    {
        int arg = 0;
        if((Cmd[i] == ' ') && (Cmd[i] != '\0'))
        {
            arg++;
            if(arg == ArgNum)
            {
                return i;
            }
        }
    }
}
Danke im Voraus!
MfG Kmitska!

Re: Fehler bei meiner Funktion

Verfasst: Di Okt 11, 2011 8:47 pm
von Xin
Hmm... ich habe das jetzt mal nicht getestet, aus einem einfachen Grund:

Das hier ist Debugging, entsprechend solltest Du das selbst lernen.

Debugging bedeutet Fragen zu stellen und Antworten mit Erwartungen zu vergleichen.
Das bedeutet, dass Du zum Beispiel StartPos ausgeben solltest und Dir überlegen, ob Du das Ergebnis erwartet hast. Wenn nein, solltest Du reichlich printf() in GetArgumentPos packen.
Wenn StartPos okay ist, packst Du die printf() in GetArgument() und guckst, ob die Ausgaben Deinen Erwartungen entsprechen.