C语言将接收的char数组转为16进制数组
时间: 2023-12-06 09:45:17 浏览: 99
可以使用如下代码将接收的char数组转为16进制数组:
void charToHex(unsigned char *input, int inputLen, unsigned char *output) {
int i;
for (i = 0; i < inputLen; i++) {
sprintf((char *)(output + i*2), "%02X", input[i]);
}
}
其中,input为输入的char数组,inputLen为输入数组的长度,output为输出的16进制数组。通过循环遍历输入数组中的每个字符,并将其转为16进制,最后将转换后的结果存入输出数组中即可。
相关问题
在C语言中,char数组如何打印16进制
在C语言中,可以使用printf函数打印char数组的16进制表示。具体方法如下:
char arr[] = {0x12, 0x34, 0xAB, 0xCD};
for(int i=0; i<sizeof(arr); i++) {
printf("%02X ", arr[i]); // %02X表示输出2位16进制数,不足2位前面补0
}
输出结果为:12 34 AB CD
,即char数组中每个元素的16进制表示。
c语言 16进制char数组转string
可以使用sprintf函数将16进制的char数组转换为string类型。
示例代码:
#include <stdio.h>
#include <string.h>
int main() {
char hex[5] = {0x4e, 0x6f, 0x76, 0x61, 0x21};
char str[11];
sprintf(str, "%02x%02x%02x%02x%02x", hex[0], hex[1], hex[2], hex[3], hex[4]);
printf("Hexadecimal: %s\n", str);
return 0;
}
输出结果:
Hexadecimal: 4e6f766121
在上面的代码中,sprintf函数将16进制的char数组转换为字符串,%02x表示将一个数以16进制输出,并且保留2位,如果不足2位则补0。最后,将结果存储在str数组中。
相关推荐














