【发布时间】:2017-06-21 19:09:45
【问题描述】:
我想与数组进行比较。我的问题是,第一个数组是一个具有这种结构的数组:00d5ff4l(没有冒号的 mac 地址)。
第二个数组来自缓冲区。他的结构是00 d5 ff 41 (Hex)
我当前的代码如下所示
char mac[] = "00d5ff4l";
for (int i = 0; i < sizeof(mac); i++) {
if (mac[i] != other_array[i]) {
return 0;
}
else
return 1;
}
现在的问题是:mac 的索引 1 是“0”,但对于 other_array,它是“00”。所以它永远不会以这种方式匹配。我必须投其中一个吗?如果是,怎么做?
【问题讨论】:
-
不转换但转换为可比较的格式。 C 不会自动为你做这件事。
-
如果这不起作用,那么您将不得不编写自己的函数。如果“00”下降到 0,那么“01:00:00”将下降到“100”,您必须手动将其与“01:00”区分开来。
-
阅读How to Ask 并提供minimal reproducible example。不要写小说来解释你的代码(或者你认为你的代码做了什么)。
-
比较“00d5ff4l”是否应该匹配“00 D5 FF 41”? (案例考虑)