c语言字符串转换数组c语⾔,⼗六进制字节数组和字符数组之间相互转换问题:
 数据0xeb1235acdf可表⽰成如下:
BYTE byte_array[5] = {0xeb, 0x12, 0x35, 0xac, 0xdf}; 转换成 char *char_array[10] = {'e', 'b', '3', '5', 'a', 'c', 'd', 'f'}
转换:
1. ⼀个⼗六进制4位,两个8位,即两个⼗六进制表⽰⼀个字节。
2. 字节转字符时,要把每个字节拆开,每4位转成⼀个字符。
3. 字符转字节时,要合并相邻的两个字符,转成⼀个字节。
代码:
array_hex2char(char *char_out, size_t out_len, char *hex_in, size_t in_len){
int i = 0;
int j = 0;
for (; (i < out_len - 2) && (j < len); i+= 2, ++j){
snprintf(&char_out[i], 3, "%02x", hex_in[j]);
}
}
array_char2hex(char *char_in, size_t in_len, char *hex_out, size_t out_len){
int i = 0;
int j = 0;
for (; i < in_len; i+= 2, j++){
sscanf(&char_in[i], 3, "%02hhx", &hex_in[j]);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。