strcmp

strcmp ist definiert in der string, die in C über string.h, bzw. in C++ über cstring eingebunden wird.

Funktion

Die Funktion wird verwendet um zu prüfen, ob zwei Strings die gleichen Zeichen enthalten.

Signatur

#include <string.h>
int strcmp (const char * str1, const char * str2);

str1: string, wird mit str2 verglichen
str: string, wird mit str1 verglichen
Return value: 0, wenn die Strings gleich sind, andernfalls ein anderer Wert

Wird 0 zurückgegeben enthalten die beiden Strings die gleichen Zeichen.
Wenn der return-Wert größer als 0 ist, dann ist der 1. String größer (der 1. ungleiche Buchstabe des 1. Strings ist im Alphabet hinter dem anderen).
Ist der Wert kleiner als 0, dann ist der 2. String größer (der 1. ungleiche Buchstabe des 1. Strings ist im Alphabet vor dem anderen)

Fehlerquellen

Beide Strings müssen mit einem Nullbyte enden, da es sonst zu falschen Ergebnissen kommt.

Beispiel

#include <stdio.h>
#include <string.h>
 
void result (int diff);
 
int main ()
{
  char str[]              = "proggen.org";
  char same_as_str[]      = "proggen.org";
  char smaller_than_str[] = "a_proggen.org";
  char bigger_than_str[]  = "z_proggen.org";
  int diff;
 
  diff = strcmp (str, same_as_str);
  result (diff);
 
  diff = strcmp (str, smaller_than_str);
  result (diff);  
 
  diff = strcmp (str, bigger_than_str);
  result (diff);
 
  return 0;
}
 
void result (int diff)
{
  if (diff == 0)
    printf ("Strings sind gleich.\n");
  else if (diff > 0)
    printf ("Der erste String ist groeßer.\n");
  else
    printf ("Der zweite String ist groeßer.\n");
}

Ausgabe:

Strings sind gleich.
Der erste String ist groeßer.
Der zweite String ist groeßer.

Siehe auch