【发布时间】:2013-04-15 15:54:04
【问题描述】:
在 C++ 中,我有一个 AES 加密的 char*,在将其作为 URL 参数just as it is done in this question 发送之前,我将其转换为十六进制表示。现在,我想做相反的事情,即再次将此类十六进制转换回 char*。但是我在这里感到困惑-将 sprintf 与 %x 或 %s 一起使用会导致完全不同的值。我怎么能再次转换回来?谢谢...
【问题讨论】:
-
你试过什么?您可以分配大小为 strlen(hex)/2 的缓冲区,然后遍历字符串,使用 sscanf 将数字对解析回 char 并将其存储在缓冲区中的正确位置。也许可以尝试一下,如果您无法使其正常工作,请向我们展示您的代码。
-
sprintf的倒数是sscanf,而不是另一个sprintf。换句话说——你是在读东西,而不是在写东西。在sscanf中,格式字符串表示“从这个字符串开始,使用这种格式,找到这个值”。你能从那里弄清楚吗?
标签: c++ c character aes printf