C语言将16进制字符串转换成汉字,写一个函数,STM32也能用,带测试代码
时间: 2023-04-08 16:04:03 浏览: 168
C#从16进制转换成汉字
好的,我可以回答这个问题。以下是一个将16进制字符串转换成汉字的函数,可以在STM32上使用:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 将16进制字符串转换成汉字
void hexStrToChinese(char *hexStr, char *chinese) {
int len = strlen(hexStr);
int i, j;
char temp[3] = {0};
for (i = 0, j = 0; i < len; i += 2, j++) {
temp[0] = hexStr[i];
temp[1] = hexStr[i + 1];
chinese[j] = strtol(temp, NULL, 16);
}
}
// 测试代码
int main() {
char hexStr[] = "E4B8ADE59BBD";
char chinese[4] = {0};
hexStrToChinese(hexStr, chinese);
printf("%s\n", chinese);
return 0;
}
```
这个函数将16进制字符串转换成汉字,使用了C标准库中的`strtol`函数。测试代码中的16进制字符串是“中国”的UTF-8编码,输出结果为“中国”。
希望这个函数对你有所帮助!
阅读全文