Format
#include <string.h> /* also in <memory.h> */ int memicmp(void *buf1, void *buf2, unsigned int cnt);
Language Level: Extension
memicmp compares the first cnt
bytes of buf1 and buf2 without regard to the case of letters in the
two buffers. The function converts all uppercase characters into
lowercase and then performs the comparison.
Return Value
The return value of memicmp indicates the
result as follows:
| Value | Meaning |
| Less than 0 | buf1 less than buf2 |
| 0 | buf1 identical to buf2 |
| Greater than 0 | buf1 greater than buf2 |
Example
This example copies two strings that each
contain a substring of 29 characters that are the same except for
case. The example then compares the first 29 bytes without regard
to case.
#include <stdio.h> #include <string.h>
char first[100],second[100];
int main(void)
{
int result;
strcpy(first, "Those Who Will Not Learn From History");
strcpy(second, "THOSE WHO WILL NOT LEARN FROM their mistakes");
printf("Comparing the first 29 characters of two strings.\n");
result = memicmp(first, second, 29);
printf("The first 29 characters of String 1 are ");
if (result > 0)
printf("less than String 2.\n");
else
if (0 == result)
printf("equal to String 2.\n");
else
printf("greater than String 2.\n");
return 0;
/*****************************************************************
The output should be:
Comparing the first 29 characters of two strings.
The first 29 characters of String 1 are equal to String 2
*****************************************************************/
}
![]()
memchr -- Search Buffer
memcmp --
Compare Buffers
memcpy -- Copy
Bytes
memmove -- Copy
Bytes
memset -- Set
Bytes to Value
strcmp --
Compare Strings
<memory.h>
<string.h>