如何把十六进制存进字符数组
时间: 2024-05-06 12:20:22 浏览: 107
Linux下C语言将字符串格式(char*)或char[]的MAC地址转换为十六进制数组
可以使用以下方法将十六进制数据存储到字符数组中:
1. 定义一个字符数组,长度足够存储十六进制数据。
2. 使用字符串格式化函数将十六进制数据转换为字符串,并将其存储在字符数组中。
例如,以下代码将十六进制数据存储在字符数组中:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
unsigned char hex_data[] = {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x21}; // 十六进制数据
char char_array[20]; // 字符数组
int i;
sprintf(char_array, "%02x", hex_data[0]); // 将第一个字节转换为字符串
for (i = 1; i < sizeof(hex_data); i++)
{
sprintf(char_array + strlen(char_array), "%02x", hex_data[i]); // 将剩余字节转换为字符串并拼接到字符数组中
}
printf("Hex data: ");
for (i = 0; i < sizeof(hex_data); i++)
{
printf("%02x ", hex_data[i]); // 输出十六进制数据
}
printf("\nChar array: %s\n", char_array); // 输出字符数组
return 0;
}
```
输出结果为:
```
Hex data: 48 65 6c 6c 6f 21
Char array: 48656c6c6f21
```
在上面的示例中,`sprintf`函数用于将十六进制数据转换为字符串,并使用字符串拼接将其存储在字符数组中。`strlen`函数用于获取字符数组中的字符串长度。
阅读全文