生成一个16进制转为字符串的c语言函数
时间: 2023-11-27 13:57:58 浏览: 135
16进制转字符串
下面是一个将16进制转换为字符串的C语言函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *hex_to_string(const char *hex) {
size_t len = strlen(hex);
if (len % 2 != 0) {
return NULL;
}
char *str = malloc((len / 2) + 1);
if (str == NULL) {
return NULL;
}
int i, j;
for (i = 0, j = 0; hex[i] != '\0'; i += 2, j++) {
sscanf(&hex[i], "%2x", (unsigned int *) &str[j]);
}
str[j] = '\0';
return str;
}
```
该函数接受一个16进制字符串,并返回一个转换后的字符串。如果输入的16进制字符串的长度不是偶数,则返回NULL。
该函数首先计算出转换后字符串的长度,然后分配内存来存储该字符串。接下来,它循环遍历输入的16进制字符串,将每个字节转换为相应的字符并存储在输出字符串中。最后,该函数在输出字符串的末尾添加一个空终止符,并返回该字符串的指针。
阅读全文