gpt4 book ai didi

c - 如何将十六进制字符串转换为无符号字符数组?

转载 作者:太空狗 更新时间:2023-10-29 16:39:14 27 4
gpt4 key购买 nike

例如,我有一个cstring "E8 48 D8 FF FF 8B 0D"(包括空格)需要转换成等效的unsigned char数组{0xE8,0x48,0xD8 ,0xFF,0xFF,0x8B,0x0D}。执行此操作的有效方法是什么?谢谢!

编辑:我不能使用 std 库...所以将其视为 C 问题。对不起!

最佳答案

这回答了要求 C++ 解决方案的原始问题。

您可以将 istringstreamhex 操纵器一起使用:

std::string hex_chars("E8 48 D8 FF FF 8B 0D");

std::istringstream hex_chars_stream(hex_chars);
std::vector<unsigned char> bytes;

unsigned int c;
while (hex_chars_stream >> std::hex >> c)
{
bytes.push_back(c);
}

请注意,c 必须是 int(或 long,或其他一些整数类型),而不是 char;如果它是 char(或 unsigned char),将调用错误的 >>> 重载并从字符串中提取单个字符,不是十六进制整数字符串。

额外的错误检查以确保提取的值适合 char 是个好主意。

关于c - 如何将十六进制字符串转换为无符号字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221170/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com