strcmp selfmade. Fußgesteuerte Schleife? Abbruch nach dem ersten Zeichen
-
c.nub schrieb:
Naja, ich habe ja Arrays, dh ich soll das ganze in der while Schleife einfügen?
wenn's unbedingt 'while' sein muss, dann mach aus dem 'for(;;)' ein 'while(1)'. aber schau dir meinen code mal an, damit du das prinzip checkst (entweder ungleich oder beide 0), dann kannstes auch anders programmieren.
-
Wow, danke es funktioniert.
Ehrlich, alleine wär ich da nie drauf gekommen.
Die Ausgabe habe ich geändert, funktioniert auch super.
Danke und schönen Abend noch.
Habe sicher bald iwann wieder ne Frage^^
-
c.nub schrieb:
Wow, danke es funktioniert.
Ehrlich, alleine wär ich da nie drauf gekommen.
Die Ausgabe habe ich geändert, funktioniert auch super.
Danke und schönen Abend noch.
Habe sicher bald iwann wieder ne Frage^^deine logischen fehler scheint hier nur einer bemerkt zu haben. von fertig vorgekautem code hast du nicht wirklich einen gewinn.
-
Ja stimmt, aber ich habe einige male (auch im C++ Forum) betont, dass ich Tipps brauche, oder Codeteile sprich 1-2 Zeilen die mir sagen wie ich weiter machen soll.
Und ja, das sind die selben Leute hier^^
Außerdem habe ich den Code jetzt eh verstanden. Alleine umsetzen... weiß nicht.
-
c.nub schrieb:
Alleine umsetzen... weiß nicht.
Du warst aber auf einem guten Weg. Deine ursprünglicher Ansatz sollte zB so funktionieren:
int MyStrCmp (char str[], char str2[]) { int a = 0; while (str[a] == str2[a] && str[a] && str2[a]) a++; return str[a] - str2[a]; }
(ungetestet)
-
Falls du einmal einen K&R in die Finger bekommst, kannst du das ganze auch in Kapitel 5.5 nachlesen. Die Halbgötter machen das dort übrigens sehr ähnlich zu deinem Ansatz:
int strcmp(char *s, char *t) { for ( ; *s == *t; s++, t++) if (*s == '\0') return 0; return *s - *t; }
Das zusätzliche
if
trifft nur zu, wenn in s und t gleichzeitig ein Nullbyte gefunden wird. In dem Fall geben sie, genau wie fricky, gleich Null zurück, ohne die Differenz von Null und Null zu berechnen.