string compare mit pointer liefert unterschiedliche Resultate
-
Ich habe eine String Compare Funktion mit Pointer erstellt, dabei habe ich festgestellt, dass ich jenachdem wie ich for-Schleife aufsetzte unterschiedlich Resultate bekomme. Ich verstehe allerdings nicht wiso ich unterschiedliche Resultate erhalte, da es meiner Meinung nach das gleiche ist.
Ich wäre dankbar wenn mir jemand auf die Sprünge helfen kann.Code ohne Finalisierung
int strcmp(char *s, char *t) { int i; [b]for(;*(s++)==*(t++); )[/b] { if(*s=='\0') { return 0; } } return *s-*t; }
Poniter wird in der Finalisierung erhöht.
int strcmp(char *s, char *t) { int i; [b]for(;*s==*t; s++, t++)[/b] { if(*s=='\0') { return 0; } } return *s-*t; }
Als Anmerkung. Ich benutze diese String Compare Funktion um char Vektoren zu sortieren und ich erhalte nur bei der zweiten Variante (Pointer in der Finalisiuerng erhöht) die korrekte sortier Reihenfolge.
-
^^die erste version zählt die pointer vorher hoch, die zweite erst *nach* einem schleifendurchlauf.
-
Okey. ja jetzt sehe ich das Problem.
Besten Dank