[英]C - converting char* to unsigned char array
我正在努力將char *macAddress
轉換為unsigned char mac[6]
但到目前為止沒有成功。 我的輸入字符串看起來像“ 00:10:6f:16:01:b3”,我想將其分為mac [0] = 0x00,mac [1] = 0x10等。
我試圖像這樣使用memcpy
:
memcpy(&mac, (unsigned char)macAddress, sizeof mac);
或相同的其他方式,例如mac = (unsigned char *)macAddress
等,但對我來說效果不佳。
有什么正確的方法如何轉換它而不會造成任何精度損失?
您要將Mac地址的十六進制數字(即字符串“ 00”)轉換為字節值(即值0)。 memcpy
會復制字符串數字的值(即“ 0”為48或0x30)。
您可以使用sscanf
進行正確的轉換。
至少在Linux上,您還可以使用功能ether_aton
。 請參見手冊頁。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.