C语言第二十七弹---内存函数-memcmp 函数的使用
最编程
2024-02-23 12:27:15
...
int memcmp ( const void * ptr1, const void * ptr2, size_t num );
• 比 较从ptr1和ptr2指针指向的位置开始,向后的num个字节• 比较两个内存块
将 ptr1 指向的内存块的第一个 num 个字节与 ptr2 指向的第一个 num 个字节进行比较,如果它们都匹配,则返回零,如果它们不匹配,则返回一个与零不同的值,表示哪个值更大。请注意,与 strcmp 不同,该函数在找到 null 字符后不会停止比较。
• 返回值如下:
<0 在两个内存块中不匹配的第一个字节在 ptr1 中的值低于 ptr2 中的值(如果计算为 unsigned char 值)
0 两个存储块的内容相等
>0 两个内存块中不匹配的第一个字节在 ptr1 中的值大于 ptr2 中的值(如果计算为无符号字符值)
#include <stdio.h>
#include <string.h>
int main()
{
char buffer1[] = "DWgaOtP12df0";
char buffer2[] = "DWGAOTP12DF0";
int n;
n = memcmp(buffer1, buffer2, sizeof(buffer1));
if (n > 0)
printf("'%s' is greater than '%s'.\n", buffer1, buffer2);
else if (n < 0)
printf("'%s' is less than '%s'.\n", buffer1, buffer2);
else
printf("'%s' is the same as '%s'.\n", buffer1, buffer2);
return 0;
}