我需要验证给定的MAC地址是否有效。
我浏览了一些链接How do you validate that a string is a valid MAC address in C?
我按照上面的步骤进行操作,但它无法正常工作请帮助我。 这是我试过的。
#include <ctype.h>
int main(const char* mac) {
int i = 0;
int s = 0;
mac = "11:11:11:11:11:11"
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));
}
此代码运行正常,但我没有得到任何输出。 请帮帮我。
答案 0 :(得分:1)
如果您使用您作为有效 C程序的一部分提供的链接中的代码,那么它将起作用。您需要通过stdio或传递参数来学习C天气的输入和输出方法,并处理来自main()
的返回值
在伪代码中,这可能如下所示:
#include <ctype.h>
int isValidMacAddress(const char* mac);
int main (int argc, char *argv[]) {
mac = get-input;
result = isValidMacAddress(mac);
output-result(result);
}
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));
}
现在get-input
部分可以请求用户类型,然后读取(研究scanf()
),控制台上的某些值(标准输入),或者它可以从给定的参数中获取输入调用程序时main()
。
output-result
部分可能只是将结果返回到调用环境,或者可能是将值(研究printf()
)打印到控制台(标准输出)。