使用c中的memcpy复制二进制数据

时间:2016-02-01 22:03:39

标签: c string binary char memcpy

使用memcpy时出现以下问题:

假设必须以二进制形式复制十六进制数据,例如:203800000E820006,然后应用以下指令:

unsigned char buffer[8];
memcpy(buffer,"\x20\x38\x00\x00\x0E\x82\x00\x06",8);

但是,当我以二进制形式写入数据时,它只打印二进制的2个第一个字节,因为\ x00被解释为字符串终止符。如何避免或修复此问题以便以8-char二进制格式表示16-char字符串?

1 个答案:

答案 0 :(得分:3)

您拥有的缓冲区不是字符串。您不能通过将其传递给期望字符串的函数来对待它,例如strcatstrcpystrcmp%s格式说明符{{ 1}}。

您有一个字符数组,因此请按以下方式打印:

printf