Suche
Suche Menü

Strings vergleichen

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