memcmp : <string.h> library function

The function int memcmp(const void *ptr1, const void *ptr2, size_t n); compares first n bytes starting from memory location pointed by ptr1 with first n bytes starting from memory location pointed by ptr2.

Function prototype of memcmp

int memcmp(const void *ptr1, const void *ptr2, size_t n);
  • ptr1 : A pointer to the block of memory.
  • ptr2 : A pointer to the block of memory.
  • n : This is the number of bytes to compare.

Return value of memcmp

Return Value Description
Positive (>0) ptr1 is greater than ptr2
Zero (==0) ptr1 is equal to ptr2
Negative (<0) ptr1 is less than ptr2

C program to show the use of memcmp function

The following program shows the use of memcmp function to compare two strings.

#include <stdio.h>
#include <string.h>
#include <conio.h>

int main()
{
   char firstString[100], secondString[100];
   int length, response;
   printf("Enter length of strings\n");
   scanf("%d", &length);
   printf("Enter first string of length %d\n", length);
   scanf("%s", &firstString);
   printf("Enter second string of length %d\n", length);
   scanf("%s", &secondString);
   
   response = memcmp(firstString, secondString, length);

   if(response > 0)
   {
      printf("second String is less than first String");
   }
   else if(response < 0) 
   {
      printf("first String is less than second String");
   }
   else 
   {
      printf("first String is equal to second String");
   }
   
   getch();
   return(0);
}

Program Output
Enter length of strings
7
Enter first string of length 7
ASDFGHJ
Enter second string of length 7
QWERTYU
first String is less than second String