写一个hexdump C程序,用来将数组以16进制形式打印,中间数组需要先转字符串
时间: 2024-03-12 12:45:02 浏览: 48
C 16进制数据转字符串
好的,以下是一个简单的hexdump C程序,它将一个数组转换为16进制字符串并以16进制形式打印:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void hexdump(const void* data, size_t size) {
char hex[3];
hex[2] = '\0';
char* str = malloc(size * 2 + 1);
size_t i;
for (i = 0; i < size; ++i) {
sprintf(hex, "%02X", ((unsigned char*)data)[i]);
strcat(str, hex);
}
printf("%s\n", str);
free(str);
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
size_t arr_size = sizeof(arr);
hexdump(arr, arr_size);
return 0;
}
```
这个程序将数组 `arr` 转换为16进制字符串,并将其打印到控制台上。中间变量 `str` 存储转换后的字符串,然后将其打印出来。您可以将 `arr` 替换为您自己的数组。
阅读全文