以下代码检查有效的MAC地址(使用或不使用":"分隔符):
#include <ctype.h>
int isValidMacAddress(const char* mac) {
int i = 0;
int s = 0;
while (*mac) {
if (isxdigit(*mac)) {
i++;
}
else if (*mac == ':' || *mac == '-') {
if (i == 0 || i / 2 - 1 != s)
break;
++s;
}
else {
s = -1;
}
++mac;
}
return (i == 12 && (s == 5 || s == 0));
}
Run Code Online (Sandbox Code Playgroud)
代码检查以下内容:
mac
恰好包含12个十六进制数字.:
输入字符串中出现分隔符冒号,则它仅出现在偶数个十六进制数字之后.它的工作原理如下:
i
,其中的十六进制数字的数字mac
,被初始化为0.while
超过在输入字符串的每一个字符的循环,直到该字符串结尾,或已经检测到12个十六进制数字.
*mac
)是有效的十六进制数字,则i
递增,循环检查下一个字符.如果您不想接受分隔符,只需将return语句更改为:
return (i == 12 && s == 0);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13505 次 |
最近记录: |