鸩止 2022-07-05 14:55 采纳率: 57.1%
浏览 31
已结题

如何使用C++对两个MAC地址去除特殊字符进行比较?

使用C++对两个MAC地址去除特殊字符进行比较,比较是否为同一个数据

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-07-05 15:05
    关注

    mac地址难道不是固定长度的字节数组,使用memcmp函数比较吗?
    memcmp
    Compare characters in two buffers.

    int memcmp( const void *buf1, const void *buf2, size_t count );

    Routine Required Header Compatibility
    memcmp <memory.h> or <string.h> ANSI, Win 95, Win NT

    For additional compatibility information, see Compatibility in the Introduction.

    Libraries

    LIBC.LIB Single thread static library, retail version
    LIBCMT.LIB Multithread static library, retail version
    MSVCRT.LIB Import library for MSVCRT.DLL, retail version

    Return Value

    The return value indicates the relationship between the buffers.

    Return Value Relationship of First count Bytes of buf1 and buf2
    < 0 buf1 less than buf2
    0 buf1 identical to buf2

    0 buf1 greater than buf2

    Parameters

    buf1

    First buffer

    buf2

    Second buffer

    count

    Number of characters

    Remarks

    The memcmp function compares the first count bytes of buf1 and buf2 and returns a value indicating their relationship.

    Example

    /* MEMCMP.C: This program uses memcmp to compare

    • the strings named first and second. If the first
    • 19 bytes of the strings are equal, the program
    • considers the strings to be equal.
    • /

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

    void main( void )
    {
    char first[] = "12345678901234567890";
    char second[] = "12345678901234567891";
    int result;

    printf( "Compare '%.19s' to '%.19s':\n", first, second );
    result = memcmp( first, second, 19 );
    if( result < 0 )
    printf( "First is less than second.\n" );
    else if( result == 0 )
    printf( "First is equal to second.\n" );
    else if( result > 0 )
    printf( "First is greater than second.\n" );
    printf( "Compare '%.20s' to '%.20s':\n", first, second );
    result = memcmp( first, second, 20 );
    if( result < 0 )
    printf( "First is less than second.\n" );
    else if( result == 0 )
    printf( "First is equal to second.\n" );
    else if( result > 0 )
    printf( "First is greater than second.\n" );
    }

    Output

    Compare '1234567890123456789' to '1234567890123456789':
    First is equal to second.
    Compare '12345678901234567890' to '12345678901234567891':
    First is less than second.

    Buffer Manipulation Routines

    See Also _memccpy, memchr, memcpy, memset, strcmp, strncmp

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月18日
  • 已采纳回答 8月18日
  • 创建了问题 7月5日