Strings vergleichen mit strcmp und strncmp
int strcmp(char *str1, char *str2);
Mit strcmp (String Compare) können wir zwei Strings vergleichen. Der Rückgabewert kann hierbei folgende Werte haben:
- 0 die Strings sind gleich
- >0 das erste ungleiche Zeichen in str1 ist größer als in str2
- <0 das erste ungleiche Zeichen in str1 ist kleiner als in str2
char str1[] = "aaXaa";
char str2[] = "aaYaa";
// vergleiche str1 mit str2, X < Y, also <0
printf("Vergleich str1 mit str2: %d
", strcmp(str1, str2));
// vergleiche str2 mit str1, Y > X, also >0
printf("Vergleich str2 mit str1: %d
", strcmp(str2, str1));
// setze Strings gleich
strcpy(str2, str1);
if(strcmp(str1, str2) == 0) {
printf("str1 ist gleich str2!
");
}
Vergleich str1 mit str2: -1 Vergleich str2 mit str1: 1 str1 ist gleich str2!
Bestimmte Anzahl von Zeichen vergleichen
Mit strncmp und dem Parameter n können wir die ersten n Zeichen der Strings vergleichen.
int strncmp(char *str1, char *str2, int n);
char str1[] = "aaXaa";
char str2[] = "aaYaa";
printf("Vergleich der ersten 2 Zeichen: %d\n", strncmp(str1, str2, 2));
printf("Vergleich der ersten 3 Zeichen: %d\n", strncmp(str1, str2, 3));
Vergleich der ersten 2 Zeichen: 0 Vergleich der ersten 3 Zeichen: -1
