Fehler bei meiner Funktion

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Fehler bei meiner Funktion

Beitrag von Kmitska » Di Okt 11, 2011 8:43 pm

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!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Fehler bei meiner Funktion

Beitrag von Xin » Di Okt 11, 2011 8:47 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten