我想比較數組。我的問題是,第一個數組是這種結構的數組: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