russkij Geschrieben 29. August 2005 Geschrieben 29. August 2005 Hallo alle, bin fleißig am lernen, und bin im Buch auf eine Anweisung gestossen, die ich nicht ganz verstehe. #include <iostream> #include <string> void main() { char myText[]="Testtext"; int myValue=stricmp(myText,"testtext"); } "stricmp" wenn ich richtig verstehe, vergleicht 2 Zeichenketten, ohne auf Groß/Kleinschreibung zu achten. warum gibt dann die Funktion 1 aus, wenn die Zeichenketten unterschiedlich sind, und 0 wenn die gleich sind? Müsste es nicht umgekehrt sein? Also 1, wenn die Ketten gleich sind? Zitieren
Bubble Geschrieben 29. August 2005 Geschrieben 29. August 2005 Die Funktion _stricmp() kann für unterschiedliche Zeichenketten auch -1 zurückgeben. Ob das Ergebnis positiv oder negativ ist, hängt von der lexographischen Anordnung der Strings zueinander ab. Ist diese gleich, sind die Strings gleich. Daher wird bei gleichen Strings eine 0 zurückgegeben. Zitieren
russkij Geschrieben 29. August 2005 Autor Geschrieben 29. August 2005 danke, ich glaube ich verstehe es langsam. Ist es so in etwa?: "Text1"-(minus)"Text1"=0; oder? Danke noch mal Zitieren
Manfred.Becker Geschrieben 30. August 2005 Geschrieben 30. August 2005 danke, ich glaube ich verstehe es langsam. Ist es so in etwa?: "Text1"-(minus)"Text1"=0; oder? Danke noch mal NEIN! So bitte nicht. Die Logik bei Stringvergleich (strcmp, stricmp, strncmp usw.) ist einfach folgende: < 0 string1 kleiner als string2 = 0 string1 gleich string2 > 0 string1 größer als string2 Das mit dem größer und kleiner will ich mal so erklären: "ANTON" steht im Wörterbuch vor "BERTA" und ist deshalb kleiner. Das hat auch Bubble mit der "lexographischen Anordnung der Strings zueinander" gemeint. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.