Computer >> Computer tutorials >  >> Programming >> C programming

State the difference between memcmp and memicmp functions in C language


Memcmp() and memicmp() compares first n bytes of two blocks of memory.

  • memcmp() performs comparison as unsigned characters.

  • memicmp() performs comparison as characters but, ignore upper case or lower case letters.

  • Both functions return an integer value.

  • Two memory buffers are equal (returns 0).

  • First buffer is greater than second (returns >0).

  • First buffer is less than second(returns<0).

Program

The following program shows the usage of memcmp() and memicmp() functions.

#include<conio.h>
#include<mem.h>
main(){
   char st1[]="This is C Programming language";
   char st2[]="this is c programming";
   int result;
   result=memcmp(st1,st2,strlen(st2));
   printf("\n1. result after comparing buffer using memcmp");
   check(result);
   result=memicmp(st1,st2,strlen(st2));
   printf("\n2. result after comparing buffer using memicmp");
   check(result);
}
check(int x){
   if(x==0)
      printf(" buffer st1 and st2 hold same data\n");
   if(x>0)
      printf("buffer st1 is bigger than buffer st2\n");
   if(x<0)
      printf(“ buffer st1 is less than buffer st2\n");
}

Output

You will see the following output −

1. result after comparing buffer using memcmp buffer st1 is less than buffer st2
2. result after comparing buffer using memicmp buffer st1 and st2 hold same data