- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - memcmp() 函数
C 库的 memcmp() 函数可以用来比较两个内存块。通常,它用于比较二进制数据或原始数据。
这里,memcmp() 接受三个变量作为参数,比较内存区域 str1 和内存区域 str2 的前 n 个字节。
语法
以下是 C 库 memcmp() 函数的语法:
int memcmp(const void *str1, const void *str2, size_t n)
参数
此函数接受以下参数:
str1 - 指向内存块的指针。
str2 - 此参数定义指向内存块的指针。
n - 此参数定义要比较的字节数。
返回值
此函数在三种不同的情况下返回整数值:
如果返回值 < 0,则表示 str1 小于 str2。
如果返回值 > 0,则表示 str2 小于 str1。
如果返回值 == 0,则表示 str1 等于 str2。
示例 1
以下 C 库程序说明了 memcmp() 函数的使用方法。
#include <stdio.h> #include <string.h> int main () { char str1[15]; char str2[15]; int ret; memcpy(str1, "abcdef", 6); memcpy(str2, "ABCDEF", 6); ret = memcmp(str1, str2, 5); if(ret > 0) { printf("str2 is less than str1"); } else if(ret < 0) { printf("str1 is less than str2"); } else { printf("str1 is equal to str2"); } return(0); }
输出
以上代码产生以下结果:
str2 is less than str1
示例 2
在下面的程序中,我们使用两个整型数组来检查它们是否相等或不相等。
#include <stdio.h> #include <string.h> int main() { int arr1[] = {1, 2, 3, 4, 5}; int arr2[] = {1, 2, 3, 4, 6}; int result = memcmp(arr1, arr2, sizeof(arr1)); if (result == 0) { printf("Arrays are equal\n"); } else { printf("Arrays are not equal\n"); } return 0; }
输出
执行上述代码后,我们得到以下结果:
Arrays are not equal
示例 3
这里,我们创建整数值作为字符串,并应用 if-else-if 语句来检查字符串是大于、小于还是等于。
#include <stdio.h> #include <string.h> int main() { char str1[] = "12345678901400345678"; char str2[] = "1234567"; int result = memcmp(str1, str2, 10); if (result < 0) { printf("First is less than second.\n"); } else if (result == 0) { printf("First is equal to second.\n"); } else { printf("First is greater than second.\n"); } return 0; }
输出
执行代码后,我们得到以下结果:
First is greater than second.
广告