C 字符串 memcmp() 函数
示例
比较两个内存块以确定哪个更大
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()
函数比较两个内存块,并返回一个表示哪个内存块更大的整数。
对于此比较,两个内存块中相同位置的字节将逐个比较,从位置 0 开始,直到其中一个不匹配或已到达内存块的末尾。有三种可能的情况:
- 如果在到达内存块末尾时没有发生不匹配,则函数返回零。
- 在第一次不匹配时,如果第一个内存块中的字节值更大,则函数返回一个正数。
- 在第一次不匹配时,如果第二个内存块中的字节值更大,则函数返回一个负数。
memcmp()
函数定义在 <string.h>
头文件中。
语法
memcmp(void * pointer1, void * pointer2, size_t size);
size_t
数据类型是一个正整数。
参数值
参数 | 描述 |
---|---|
pointer1 | 必需。指向要比较的内存块之一的指针。 |
pointer2 | 必需。指向要比较的内存块之一的指针。 |
大小 | 必需。要比较的字节数。 |
技术详情
返回 | 一个 int 值,如果第一个内存块更大则为正数,如果第二个内存块更大则为负数,如果两个内存块相等则为 0。 |
---|