我想比较数组。我的问题是,第一个数组是这种结构的数组:00d5ff4l
(不带冒号的mac地址)。 第二个数组来自缓冲区。他的结构00 d5 ff 41
(十六进制)比较不同类型的两个数组
我当前的代码看起来像这样
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”。所以它永远不会以这种方式匹配。我是否必须演员其中之一?如果是,如何?
相关:https://stackoverflow.com/questions/3408706/hexadecimal-string-to-byte-array-in-c – Caramiriel
未投射,但转换为可比较的格式。 C不会自动为你做。 –
如果这不起作用,那么你将不得不编写自己的函数。如果“00”下降到0,那么“01:00:00”将下降到“100”,您必须手动将其与“01:00”区分开来。 – Alex