C 教程

C 教程 C 语言简介 C 下载安装和环境配置 C 快速入门 C 语法 C 输出 C 注释 C 变量 C 数据类型 C 常量 C 运算符 C 布尔值 C If...Else 语句 C Switch 语句 C While 循环 C For 循环 C Break/Continue 语句 C 数组 C 字符串 C 用户输入 C 内存地址 C 指针

C 函数

C 函数 C 函数参数 C 作用域 C 函数声明 C 递归 C 数学函数

C 文件

C 创建文件 C 写入文件 C 读取文件

C 结构体

C 结构体 C 嵌套结构体 C 结构体和指针 C 联合体 C typedef

C 枚举

C 枚举

C 内存

C 内存管理

C 错误

C 错误 C 调试 C 空值 C 错误处理 C 输入验证

C 更多

C 日期 C 随机数 C 宏 C 代码组织 C 存储类 C 位运算符 C 固定宽度整数

C 项目

C 项目

C 参考资料

C 参考资料 C 关键词 C <stdio.h> C <stdlib.h> C <string.h> C <math.h> C <ctype.h> C <time.h>

C 标准库参考

C 标准库 - 参考手册 C 标准库 - <assert.h> C 标准库 - <ctype.h> C 标准库 - <errno.h> C 标准库 - <float.h> C 标准库 - <limits.h> C 标准库 - <locale.h> C 标准库 - <math.h> C 标准库 - <setjmp.h> C 标准库 - <signal.h> C 标准库 - <stdarg.h> C 标准库 - <stddef.h> C 标准库 - <stdio.h> C 标准库 - <stdlib.h> C 标准库 - <string.h> C 标准库 - <time.h>

C 实例

C 语言实例 C 经典100例 C 编译器 C 测验


C 字符串 memcmp() 函数

❮ 字符串教程


示例

比较两块内存,看哪块更大:

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

if (cmp > 0) {
  printf("%s is greater than %s", myStr1, myStr2);
} else if (cmp < 0) {
  printf("%s is greater than %s", myStr2, myStr1);
} else {
  printf("%s is equal to %s", myStr1, myStr2);
}
亲自试一试 »

定义和用法

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

此比较操作会逐个比较两个内存块中相同位置的字节,从位置 0 开始,直到其中一个字节不匹配或到达内存块末尾为止。共有三种可能的情况:

  • 如果到达内存块末尾且未发现任何不匹配,则函数返回零。
  • 如果第一个内存块中的字节值大于第二个内存块中的字节值,则函数返回一个正数。
  • 如果第二个内存块中的字节值大于第一个内存块中的字节值,则函数返回一个负数。

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


语法

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

size_t 数据类型为正整数。

参数值

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

技术细节

返回值: 一个int值,如果第一个内存块大于第二个内存块,则为正;如果第二个内存块大于第一个内存块,则为负;如果两个内存块相等,则为0。

❮ 字符串教程


相关页面

C 字符串教程

C 字符串函数教程