关于怎么生成MAC地址格式的字符串

关于如何生成MAC地址格式的字符串?
char *l_Mac;
l_mac[0],l_mac[1],l_mac[2],l_mac[3],l_mac[4],l_mac[5]分别是0x00,0x12,0xed,0x1d,0x5e,如何将其转化为一个char类型的MAC地址字符串,例如:00-12-ed-1d-5e

------解决方案--------------------
引用:
引用:错了,是
char macstr[32];
sprintf(macstr, "%02x-%02x-%02x-%02x-%02x-%02x", 
l_mac[0],l_mac[1],l_mac[2],l_mac[3],l_mac[4],l_mac[5]);
不知道为什么?生成的字符串是这种样式的:“00-12-ed-ffffff……


sprintf(macstr, "%02x-%02x-%02x-%02x-%02x-%02x", 
(unsigned char)l_mac[0],(unsigned char)l_mac[1],(unsigned char)l_mac[2],(unsigned char)l_mac[3],(unsigned char)l_mac[4],(unsigned char)l_mac[5]);

------解决方案--------------------
引用:
编译不过去,提示:不能从char*转化为unsigned char


我说错了, 是前面的l_Mac 定义成 unsigned char

    unsigned char l_Mac[]={0x00,0x12,0xed,0x1d,0x5e,0x99};

    char str[20];
    sprintf(str,"%02x-%02x-%02x-%02x-%02x-%02x", l_Mac[0],l_Mac[1],l_Mac[2],l_Mac[3],l_Mac[4],l_Mac[5]);
    printf("%s\n",str);