C Handbuch bestellen

Das C Tutorial (deutsch)

Strings (Zeichenketten)

String-Funktionen

String Compare - Strings vergleichen in C mit strcmp und strncmp

char * strcmp(char *str1, char *str2);

Mit String Compare können wir zwei Strings vergleichen. Der Rückgabewert kann hierbei folgende Werte haben:

  • 0 die Strings sind gleich
  • 1 das erste ungleiche Zeichen in str1 ist größer als in str2
  • -1 das erste ungleiche Zeichen in str1 ist kleiner als in str2
char str1[] = "aaXaa";
char str2[] = "aaYaa";

// vergleiche str1 mit str2, X < Y, also -1
printf("Vergleich str1 mit str2: %d\n", strcmp(str1, str2));

// vergleiche str2 mit str1, Y > X, also 1
printf("Vergleich str2 mit str1: %d\n", strcmp(str2, str1));

// setze Strings gleich
strcpy(str2, str1);

if(strcmp(str1, str2) == 0) {
	printf("str1 ist gleich str2!\n");
}
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.

char * 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