Frage zu strcmp(...)
-
Hallo, Leute ich werde noch Irre
Wieso bekomme ich z.B. hier immer -1 bei strcmp heraus obwohl der str1 doch größer ist als str2 ??? Laut sämtlichen Beschreibungen sollte wenn der str1 größer ist als str2 doch eine +1 raus kommen oder ???
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char *str1="Klausur"; char *str2="ist"; printf("Ausgabe: %d\n", strcmp(str1, str2)); }
-
if('K'<'i'){
printf("stop strcmp()");
if('k'>'i'){
printf("use stricmp()");
}
}
hab leider keine ascii tabelle parat
-
strcmp prüft, ob zwei Zeichenketten lexikografisch gleich sind.
Sie vergleicht auf Länge sondern auf Übereinstimmung und die gibt es in diesem fall numal nicht also gibt sie -1 zurück
-
Laenge müssteste
strlen(str1)-1; und strlen(str2) vergleichen, oder ist das bei Pointer anders?
-
crookie schrieb:
Wieso bekomme ich z.B. hier immer -1 bei strcmp heraus obwohl der str1 doch größer ist als str2 ???
Das erste Zeichen ist ein 'K', und Grossbuchstaben sind normalerweise kleiner als Kleinbuchstaben.
dumdudium schrieb:
Laenge müssteste
strlen(str1)-1; und strlen(str2) vergleichen, oder ist das bei Pointer anders?
Seltsame Idee. Drei Äpfel sind mehr als zwei Äpfel, aber drei Äpfel minus ein Apfel sind nicht mehr als zwei Äpfel.
Btw muss strlen() gar nicht 1 oder -1 zurückgeben, es reicht was positives/negatives.