memcmp() - Buffer Manipulation Function
How to compare two blocks of memory in C++?
Explanation
memcmp() manipulation function compares the first "count" characters of buffers, "str1" and "str2". It returns an integer value after comparing the two blocks of memory.
Syntax:
int *memcmp(void *str1, void *str2, size_t count);
The following table lists the possible meanings for the value returned by "memcmp()"
Value | Meaning |
Less than Zero | str1 is less than str2 |
Zero | str1 is equal to str2 |
Greater than Zero | str1 is greater than str2 |
Example :
#include <stdio.h> #include <string.h> int main() { char str1[20]="Hscript"; char str2[20]="Hscripts"; int retval; r = memcmp( str1, str2, strlen(str1)+1 ); if(r>0) { printf("string1 is greater than string2\n ");} else if(r<0) {printf("string1 is less than string2\n");} else {printf("string1 is equal to string2\n");} return 0; } |
Result :
string1 is less than string2
In the above example, this manipulation function is used with "count" value being set to the length of the buffer "str1". By setting this count value, it compares the two blocks of memory.