怎么将mac地址转换成6字节的字符数组

如何将mac地址转换成6字节的字符数组
如何将一个  cahr mac[18] = "00:0f:2a:d2:fe:ef"; 的mac地址转换成
  char mac[6] 六个字节的字符数组??
------解决方案--------------------
要这个效果吗?
    char mac[] = "00:0f:2a:d2:fe:ef";
    unsigned char addr[6];
    sscanf(mac,"%2x:%2x:%2x:%2x:%2x:%2x",addr,addr+1,addr+2,addr+3,addr+4,addr+5);

------解决方案--------------------
char macstr[18] = "00:0f:2a:d2:fe:ef";
char machex[6];
int v,i;
for (i=0;i<6;i++) {
    sscanf(macstr+3*i,"%2x",&v);
    maxhex[i]=(char)v;
}

作为一个C程序员,对
 scanf,sscanf,fscanf
 printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。

------解决方案--------------------
第6行maxhex[i]=(char)v;
纠正为machex[i]=(char)v;
------解决方案--------------------
16进制转字节表示。