无符号短数组到字符数组

Unsigned Short Array to Char Array

我看过一些处理 无符号短数组 并在其中存储“字符串”的代码。但我很好奇如何将无符号短数组中的字符串转换或提取为 char 数组,以便在 printf() 中用于调试目的。

unsigned short a[5];
char b[5];

a[0] = 'h';
a[1] = 'e';
a[2] = 'l';
a[3] = 'l';
a[4] = 'o';

printf("%s\n", a);
// output is just the 'h'

根据我最近的理解,无符号短整型是 2 个字节,因此 'h' 有一个 Null 终止符。而通常使用 char,每个字符为 1 个字节。

有没有什么好的方法可以提取“字符串”'hello'并将其放入一个char[]中以便稍后打印出来?遍历 unsigned short 数组并将值存储到 char 数组?

如何转换?:

char b[6];
for(size_t i = 0; i < 5; i++) b[i] = a[i];
b[5] = 0;