c语言 16进制字符串转化为ascii
时间: 2023-09-08 17:14:25 浏览: 310
16进制到Ascii的转化
可以使用C语言中的`sscanf`函数将16进制字符串转换为整数,再使用强制类型转换将整数转换为ASCII字符。
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_str[] = "48656c6c6f20576f726c64"; // 16进制字符串
int hex_len = strlen(hex_str);
char* ascii_str = malloc((hex_len / 2) + 1); // 分配足够的空间存放ASCII字符串
// 逐个读取16进制字符串中的每两个字符,并将其转换为整数
for (int i = 0; i < hex_len; i += 2) {
int hex_val;
sscanf(hex_str + i, "%2x", &hex_val); // 读取两个字符,并将其转换为整数
ascii_str[i / 2] = (char)hex_val; // 将整数转换为ASCII字符
}
ascii_str[hex_len / 2] = '\0'; // 将最后一个字符设置为NULL,以便将其作为字符串使用
printf("ASCII字符串:%s\n", ascii_str);
free(ascii_str); // 释放内存
return 0;
}
```
输出结果为:
```
ASCII字符串:Hello World
```
阅读全文