c++ - 如何将十六进制字符串分配给 char[] 变量?

标签 c++ hex arrays

假设我的十六进制字符串。 hexStr = "aecf"

如何将十六进制字符串值分配给 unsigned char myChar[],如下所示。谢谢。

myChar[0] = 0xae;
myChar[1] = 0xcf;

最佳答案

您可以按如下方式转换数据:

    char* hexstr="aecf";
    int hexsize=strlen(hexstr);
    unsigned char* myChar = new unsigned char[hexsize/2+1];
    myChar[hexsize/2]='\0'
    for (int i=0,intj=0;i<hexsize;i+=2,j++)
    {
        int tmp;
        sscanf(hexstr+i, "%2x",&tmp));
        myChar[j]=tmp; // warning, ignore it
    }

这是为了防止您不使用静态字符串,否则使用其他答案。

关于c++ - 如何将十六进制字符串分配给 char[] 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185279/

相关文章:

c# - 0x80000000 == 2147483648 在 C# 但不是在 VB.NET

c++ - 我的程序可以在我的电脑上运行,但不能在 CodeEval 上运行

arrays - 检查数组之间重叠的算法

c - 打印 C 中结构数组中每个结构成员的函数

c++ - 如何二进制读取 7z 存档

C++:响应 Windows 注销的清理操作

Python程序解释: Decimal to hex

java - HashMap#entrySet 抛出 ArrayStoreException

c++ - 不间断地从循环中删除列表中的元素

c++ - SFINAE 检查运算符的存在(没有 decltype)