[C language library function source code]
[This program is compiled in Dev C ++ 4.9.9.2]
/*
Compares count bytes of memory starting at buffer1 and buffer2 and
Find if equal or which one is first in lexical order.
Compare the first count bytes of buffer1 and buffer2 in the memory area. When buffer1 <buffer2, the return value is <0;
When buffer1 = buffer2, the return value is 0. When buffer1> buffer2, the return value is greater than 0.
*/
Int my_memcmp (const void * buffer1, const void * buffer2, int count)
{
If (! Count)
Return (0 );
While (-- count & * (char *) buffer1 = * (char *) buffer2)
{
Buffer1 = (char *) buffer1 + 1;
Buffer2 = (char *) buffer2 + 1;
}
Return (* (unsigned char *) buffer1)-* (unsigned char *) buffer2 ));
}
Void print (char * str1, char * str2, int T)
{
If (T> 0)
Printf ("/n % s upper than % s/n", str1, str2 );
Else if (T <0)
Printf ("/n % s lower than % s/n", str1, str2 );
Else
Printf ("/n % s equal % s/n", str1, str2 );
}
Int main ()
{
Char * str1 = "ammana ";
Char * str2 = "Babi ";
Print (str1, str2, my_memcmp (str1, str2, 3 ));
Print (str2, str1, my_memcmp (str2, str1, 3 ));
Print (str2, str2, my_memcmp (str2, str2, 3 ));
System ("pause ");
Return 0;
}