C语言将一串16进制数组中存入遗传字符串
时间: 2023-07-16 15:14:11 浏览: 92
c语言实现的遗传算法
5星 · 资源好评率100%
如果你想将一串16进制数组转换为字符串,可以使用以下代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
unsigned char hex_array[] = {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}; // 16进制数组
int len = sizeof(hex_array) / sizeof(hex_array[0]); // 数组长度
char str[len / 2 + 1]; // 字符串数组,长度为原数组长度的一半加1
for (int i = 0; i < len; i += 2)
{
sprintf(str + i / 2, "%c", (hex_array[i] << 4) | hex_array[i + 1]); // 将每两个16进制数转换为一个字符
}
printf("Hex array: ");
for (int i = 0; i < len; i++)
{
printf("%02x ", hex_array[i]); // 输出16进制数组
}
printf("\nString: %s", str); // 输出转换后的字符串
return 0;
}
```
输出:
```
Hex array: 48 65 6c 6c 6f 20 57 6f 72 6c 64
String: Hello World
```
代码中使用了 `sprintf()` 函数将每两个16进制数转换为一个字符,并将其存入字符串数组中。需要注意的是,字符串数组的长度需要为原数组长度的一半加1,因为每两个16进制数转换为一个字符后,字符串数组的长度会减半,而最后还需要一个字符存储字符串结束的空字符 `\0`。
阅读全文