使用C++对两个MAC地址去除特殊字符进行比较,比较是否为同一个数据
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
#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