簡體   English   中英

C-將char *轉換為無符號char數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM