字符串转mac地址

来源:互联网 发布:如何评价secrets 知乎 编辑:程序博客网 时间:2024/06/17 14:17

又是项目里看到的,百忙中稍微记下吧,感觉写的很不错。


int hex2num(char c){if (c>='0' && c<='9') return c - '0';if (c>='a' && c<='z') return c - 'a' + 10;//这里+10的原因是:比如16进制的a值为10if (c>='A' && c<='Z') return c - 'A' + 10;    printf("unexpected char: %c", c);return NON_NUM;}int str2mac(const char * szMac, char * pMac)  {      const char * pTemp = szMac;      int i;        for (i = 0;i < 6;++i)      {          pMac[i] = hex2num(*pTemp++) * 16;          pMac[i] += hex2num(*pTemp++);      }         return 0;} int main(){char szValue[32] = "11AABB22CC33 ";char szBSSID[6] = "";str2mac(szValue, szBSSID);printf("Value = %s\n", szValue);  printf("bssid : %02x-%02x-%02x-%02x-%02x-%02x \n",                 st_keys.bssid_name[0], st_keys.bssid_name[1],                st_keys.bssid_name[2], st_keys.bssid_name[3],                st_keys.bssid_name[4], st_keys.bssid_name[5]);return 0;}


效果:

Value = 11AABB22CC33 

bssid = 11-aa-bb-22-cc-33 

 
原创粉丝点击