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