c语言实现16进制转字符串
时间: 2023-07-26 15:38:11 浏览: 122
C 16进制数据转字符串
以下是C语言实现将16进制数转换为字符串的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* hex_to_string(unsigned char* hex, size_t hex_len) {
char* str = malloc(hex_len * 2 + 1);
size_t i;
for (i = 0; i < hex_len; i++) {
sprintf(str + i * 2, "%02x", hex[i]);
}
str[hex_len * 2] = '\0';
return str;
}
int main() {
unsigned char hex[] = {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x21};
char* str = hex_to_string(hex, sizeof(hex));
printf("%s\n", str);
free(str);
return 0;
}
```
在上面的示例代码中,我们定义了一个函数 `hex_to_string`,它将一个 unsigned char 类型的数组转换为一个字符串。它首先分配足够多的内存来存储字符串,然后使用 `sprintf` 函数将每个字节转换为两个十六进制数字,并将它们添加到字符串中。在循环结束后,我们将字符串的最后一个字符设置为 NULL,以便我们可以将其作为 C 字符串使用。
阅读全文