C string memcmp() 函数

定义和用法

memcmp() 函数比较两块内存,并返回一个整数以指示哪一块更大。

进行比较时,从位置 0 开始,逐字节比较两块内存中相同位置的字节,直到其中一个字节不匹配或到达内存块的末尾。存在三种可能的情况:

  • 如果到达内存块末尾时没有任何不匹配,则函数返回零。
  • 在第一个不匹配处,如果第一块内存中的字节值更大,则函数返回一个正数。
  • 在第一个不匹配处,如果第二块内存中的字节值更大,则函数返回一个负数。

memcmp() 函数定义在 <string.h> 头文件中。

实例

比较两块内存以查看哪一块更大:

char myStr1[] = "ABCD";
char myStr2[] = "ABCE";
int cmp = memcmp(myStr1, myStr2, 4);

if (cmp > 0) {
  printf("%s is greater than %s\n", myStr1, myStr2);
} else if (cmp < 0) {
  printf("%s is greater than %s\n", myStr2, myStr1);
} else {
  printf("%s is equal to %s\n", myStr1, myStr2);
}

亲自试一试

语法

memcmp(void * pointer1, void * pointer2, size_t size);

size_t 数据类型是正整数。

参数

参数 描述
pointer1 必需。指向要比较的内存块之一的指针。
pointer2 必需。指向要比较的内存块之一的指针。
size 必需。要比较的字节数。

技术细节

返回:

如果第一块内存更大,则返回一个正整数。

如果第二块内存更大,则返回一个负整数。

如果两块内存相等,则返回 0。

相关页面

教程:C 字符串

教程:C 字符串函数