C Standard Library

C <string.h> - strcmp() Function



The C <string.h> strcmp() function is used to compare two null-terminated byte strings lexicographically. The function starts comparing the first pair of characters of each string and continues comparing until the pair of characters are different or until a terminating null-character is reached.

Syntax

int strcmp ( const char * lhs, const char * rhs );            

Parameters

lhs Specify pointer to the first null-terminated byte string to compare.
rhs Specify pointer to the second null-terminated byte string to compare.

Return Value

Based on the value of lhs and rhs, the function returns the following:

  • Negative value if lhs appears before rhs in lexicographical order.
  • Zero if lhs and rhs compare equal.
  • Positive value if lhs appears after rhs in lexicographical order.

Example: Value returned by function = 0

The example below shows the usage of strcmp() function.

#include <stdio.h>
#include <string.h>
 
int main (){
  char str1[20] = "Hello";
  char str2[20] = "Hello";
  
  //comparing str1 and str2
  int retval = strcmp(str1, str2);

  //displaying the result
  if(retval != 0)
    printf("str1 and str2 are not equal.\n");
  else
    printf("str1 and str2 are equal.\n");
 
  printf("Value returned by the function: %i\n", retval);

  return 0;
}

The output of the above code will be:

str1 and str2 are equal.
Value returned by the function: 0

Example: Value returned by function < 0

Lets consider this example where the returned value is less than zero.

#include <stdio.h>
#include <string.h>
 
int main (){
  char str1[20] = "Hello";
  char str2[20] = "World";
  
  //comparing str1 and str2
  int retval = strcmp(str1, str2);

  //displaying the result
  if(retval != 0)
    printf("str1 and str2 are not equal.\n");
  else
    printf("str1 and str2 are equal.\n");

  printf("Value returned by the function: %i\n", retval);

  return 0;
}

The output of the above code will be:

str1 and str2 are not equal.
Value returned by the function: -15

Example: Value returned by function > 0

Lets consider another example where the returned value is greater than zero.

#include <stdio.h>
#include <string.h>
 
int main (){
  char str1[20] = "Hello";
  char str2[20] = "Apple";
  
  //comparing str1 and str2
  int retval = strcmp(str1, str2);

  //displaying the result
  if(retval != 0)
    printf("str1 and str2 are not equal.\n");
  else
    printf("str1 and str2 are equal.\n");

  printf("Value returned by the function: %i\n", retval);

  return 0;
}

The output of the above code will be:

str1 and str2 are not equal.
Value returned by the function: 7

❮ C <string.h> Library