小甲鱼 发表于 2016-12-16 23:11:40

memcmp -- 比较内存空间

memcmp 函数文档

函数概要:

memcmp 函数比较 s1 和 s2 指向的两个内存空间前 n 个字节,返回一个小于,等于或大于 0 的数表示 s1 小于、等于或大于 s2。


函数原型:

#include <string.h>
...
int memcmp(const void *s1, const void *s2, size_t n);

参数解析:


参数 含义
s1指向待比较的第一个内存空间
s2指向待比较的第二个内存空间
n指定需要比较的字节个数


返回值:

返回一个整数表示两个内存空间的大小关系:


返回值含义
< 0 字符串 1 的字符小于字符串 2 对应位置的字符
0 两个字符串的内容完全一致
> 0 字符串 1 的字符大于字符串 2 对应位置的字符


演示:

#include <stdio.h>
#include <string.h>

int main(void)
{
      char str1 = "FishC.com";
      char str2 = "FishC.com";

      if (memcmp(str1, str2, 10) == 0)
      {
                printf("两个内存空间完全一致!\n");
      }
      else
      {
                printf("两个内存空间不一致!\n");
      }

      return 0;
}


人造人 发表于 2016-12-19 12:35:36

memmove ?
^_^

小甲鱼 发表于 2016-12-20 20:34:40

人造人 发表于 2016-12-19 12:35
memmove ?
^_^

感谢,已经改正~

日骑士的龙 发表于 2022-11-17 18:09:03

实验了,感觉是n之前的字符一一对比,只要有一个不一样,立刻输出,小甲鱼这里的例子感觉不太合适或者少了,不能展现函数的所有特性
页: [1]
查看完整版本: memcmp -- 比较内存空间