当前位置: C语言 -- 标准库 -- <string.h> -- memcmp

memcmp函数


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

描述:

该函数比较参数s1指向对象和参数s2指向对象前n个字符的大小。遇到空字符后,该函数不会停止比较。

memcmp函数返回的非0值符号由比较对象中第一对不同字符的差值决定。

:结构对象为了对齐,填充内容的值是不确定的;比分配空间短的字符串和联合也可能导致比较问题。


参数:
const void *s1

指向对象的指针。

const void *s2

指向对象的指针。

size_t n

比较的字符数。


返回值:

根据参数s1指向对象是大于、等于还是小于参数s2指向对象,函数返回一个大于、等于或者小于0的整数。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
/*函数memcmp范例*/

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

int main(void)
{
    const char strOne[] = "string";
    const char strTwo[] = "strong";
    int value;

    value = memcmp(strOne, strTwo, 3);
    if(value>0)
        puts("strOne is greater than strTwo.");
    else if(value<0)
        puts("strOne is less than strTwo.");
    else
        puts("strOne is equal to strTwo.");
    
    return 0;
}


输出:

strOne is equal to strTwo.


相关内容:
strcmp 比较字符串的函数。
strcoll 比较字符串的函数。
strncmp 比较字符串前n个字符的函数。
strxfrm 转换字符串的函数。