29. August 200521 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 200521 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 200521 j Autor danke, ich glaube ich verstehe es langsam. Ist es so in etwa?: "Text1"-(minus)"Text1"=0; oder? Danke noch mal
30. August 200521 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.