C语言中的HEX分配

Mar*_*ika 4 c c++

我生成了一个很长的字节序列,如下所示:

0x401DA1815EB560399FE365DA23AAC0757F1D61EC10839D9B5521F.....
Run Code Online (Sandbox Code Playgroud)

现在,我想将它分配给一个静态的unsigned char x [].

显然,当我在这里执行此操作时,我得到十六进制转义序列超出范围的警告

static unsigned char x[] = "\x401DA1815EB56039.....";
Run Code Online (Sandbox Code Playgroud)

它需要的格式是

static unsigned char x[] = "\x40\x1D\xA1\x81\x5E\xB5\x60\x39.....";
Run Code Online (Sandbox Code Playgroud)

所以我想知道在C中是否有一种方法可以在没有我在每个字节后添加十六进制转义序列的情况下进行此分配(可能需要一段时间)

str*_*ger 7

我认为没有办法从中获取文字.

您可以在运行时解析字符串并将其存储在另一个数组中.

您可以使用sed或其他东西来重写序列:

echo 401DA1815EB560399FE365DA23AAC0757F1D61EC10839D9B5521F | sed -e 's/../\\x&/g'
\x40\x1D\xA1\x81\x5E\xB5\x60\x39\x9F\xE3\x65\xDA\x23\xAA\xC0\x75\x7F\x1D\x61\xEC\x10\x83\x9D\x9B\x55\x21F
Run Code Online (Sandbox Code Playgroud)