【发布时间】:2014-03-07 20:21:45
【问题描述】:
如果我有这样的数组
unsigned char data[2850] = "";
在运行我的程序的一部分后,最终会充满字节元素,因此如果我循环并注销它,我将看到以下内容
for (size_t i= 0; i < sizeof(data); i++) {
printf("%02X ", data[i]);
}
//log window shows 01 24 81 00 0E 1C 44 etc...
有没有办法获取数据数组的所有元素并将它们放入一个 const char 中?还是只有一根大绳子?希望我说得足够清楚。我的目标是最终将这个数据数组的所有元素转换成一个 base64 编码的字符串,我可以在程序的其他地方使用它。
【问题讨论】:
-
什么意思?您是否暗示该数组不是以空值终止的并且您希望它是?除了它似乎包含空值。请更准确地说出您想要的内容。
-
您想要十六进制值的字符串表示?请具体。
-
是那些十六进制值,
00真的是0x00?如果是这样,则不能将其用作字符串,因为 C 使用十六进制 0 作为字符串终止符。 -
您的目标是打印它们还是操纵它们?如果您只想打印它们,则无需先将其转换为字符串。
-
如果数组包含更多的 B,您将更有可能被刺痛