C语言将接收的char数组转为16进制数组
时间: 2023-12-06 19:45:17 浏览: 100
可以使用如下代码将接收的char数组转为16进制数组:
```c
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进制字符串
以下是一个将char数组转换为16进制字符串的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void charToHex(char *input, char *output, int length) {
for (int i = 0; i < length; i++) {
sprintf(&output[i * 2], "%02X", input[i]);
}
}
int main() {
char input[] = "Hello World";
int length = strlen(input);
char *output = (char*)malloc(length * 2 + 1);
charToHex(input, output, length);
printf("%s\n", output);
free(output);
return 0;
}
```
该代码将输入字符串 "Hello World" 转换为16进制字符串,输出结果为 "48656C6C6F20576F726C64"。
该函数使用sprintf函数将每个字符转换为2个16进制数字,然后将其存储在输出字符串中。输出字符串的长度为输入字符串的2倍。注意,输出字符串需要在使用之前动态分配内存,并在使用后释放。
在C语言中,char数组如何打印16进制
在C语言中,可以使用printf函数打印char数组的16进制表示。具体方法如下:
```c
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进制表示。
阅读全文
相关推荐















