Home C&C++函数库 c++ 语法 程序源码 Linux C库

memcmp

函数   <cstring>

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

比较两个内存块

比较ptr1指向的内存块的最前面的num个字节和ptr2指向的最前面的num字节, 如果它们都匹配则返回0,如果不匹配则返回一个不同于0的值,表示哪个值更大。

注意,与strcmp不同,该函数在遇到空字符后不会停止比较。

☲  参数


ptr1
内存块的指针。

ptr2
内存块的指针。

num
要比较的字节数。

☉  返回值



返回一个整数值,表示内存块内容之间的关系:
返回值 含义
<0 在两个内存块中不匹配的第一个字节在ptr1中的值比在ptr2中的值低(如果作为unsigned char值计算)
0 两个内存块的内容是相等的
>0 在两个内存块中不匹配的第一个字节在ptr1中的值大于ptr2中的值(如果作为unsigned char值计算)


☣  示例



/* memcmp example */
#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;
}

输出:
'DWgaOtP12df0' is greater than 'DWGAOTP12DF0'.
DWgAOtp12Df0大于DWgAOtp12Df0,因为两个单词中第一个不匹配的字符分别是'g'和'G', 'g'(103)的计算结果大于'G'(71)。

🍄  另请参阅



strcmp 比较两个字符串(function )
memchr 在内存块中定位字符(function )
memcpy 拷贝内存块(function )
memset 填充内存块(function )
strcmp 比较两个字符串中的字符(function )

联系我们 免责声明 关于CandCplus 网站地图