strcmp selbst nachcoden, so richtig?
-
Hääää?
char != signed char
Quatsch!
-
MastaH: www.nuhr.de
-
bitte erklären :p :p
-
@Mastah
char, signed, unsigned char sind unterschiedliche Typen. Das ist standardisierter Quatsch
Der Standard macht keine Annahmen darüber, ob char vorzeichenbehaftet ist oder nicht. Kann ich aber auch nix für[ Dieser Beitrag wurde am 11.07.2003 um 11:58 Uhr von virtual editiert. ]
-
also ich poste hier dann mal die lösung von der schule
hoffe, sie stimmt soweit
/* vergleicht Strings (bzw. char-Arrays), Returnwert: 0...wenn Strings gleich >0..wenn String 1 größer <0..wenn String 2 größer */ int my_strcomp(char *str1, char *str2) { int i=0; while(str1[i]!='\0') { if(str1[i]==str2[i]) { i++; } else { return str1[i]-str2[i]; } } return str1[i]-str2[i]; }
-
Dann will ich auch mal:
int strcmp(char *a, char *b) { while (*a && *a == *b) ++a, ++b; return *a - *b; }
kurz & einfach...
-
Hi,
und welche Variante ist nun die Beste Lösung?
Gruß,
Ikari, Der der auf ner LAN ist
-
Ich denke mady seine Version ist die beste, wobei man darüber nachdenken kann, die while - Bedingung umzudrehen:
while (*a == *b && *a)
Könnte je nach String noch ein paar Zyklen bringen.
-
Original erstellt von virtual:
@Mastah
char, signed, unsigned char sind unterschiedliche Typen. Das ist standardisierter QuatschMan kann doch nicht generell sagen "char != signed char != unsigned char". Wenn man nur char schreibt ist das von der Implementation abhängig ob er signed oder unsigned ist. Ich habe dich leider nur zur Hälfte zitiert (shame on me
). Oder habe ich jetzt nen totalen Gehirnabsturz?
-
Es ist ein anderer Typ, hat aber einen Wertebereich, der entweder identisch zu 'signed char' oder 'unsigned char' ist.
Original erstellt von virtual:
@DanielE:Das war ich natürlich nicht. Das erkennt man am Smiley :).
expliziten Cast
Ein schöner Pleonasmus.