【发布时间】:2011-07-23 00:55:20
【问题描述】:
假设我有一个字符串 str,它由默认为十六进制系统 (0-9, a-f) 的字符组成:
string str="1234567890abcdef";
我还有一个 n 长度的空数组(n 是已知的):
unsigned char arr[n]
我想做的是用 str 的值填充我的数组 arr ,但具体方式如下所示:
unsigned char arr[8] = {0x12U, 0x34U, 0x56U, 0x78U, 0x90U, 0xabU, 0xcdU, 0xefU};
正如它所呈现的那样,字符串 str 被分成更小的十六进制字符。我怎样才能实现它?分隔算法很简单,但我不知道如何将字符串更改为无符号字符以及如何在字符开头添加 0x 和在字符末尾添加 U。
【问题讨论】:
-
你想在这里达到什么最终结果?这是图书馆的接口吗?
-
我对您要“在开头添加 0x”的声明感到困惑。您是想在运行时从
str填充arr[],还是在源代码中将一种形式转换为另一种形式? -
@Andy:Mayby 我不够清楚,抱歉。 “在开头添加 0x”是指在我的源代码(十六进制)中将一种形式(str)转换为另一种形式。