Veröffentlicht 29. August 200520 j 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?
29. August 200520 j 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.
29. August 200520 j Autor danke, ich glaube ich verstehe es langsam. Ist es so in etwa?: "Text1"-(minus)"Text1"=0; oder? Danke noch mal
30. August 200520 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.