如何在C++中将字符串转换为十六进制[已关闭]

8tntrjer  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(149)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

3天前关闭。
Improve this question
我需要将char * 或std::string转换为十六进制并填充BYTE []。
示例:

std::string str = "Hello";
BYTE byteString[str.size()] = convertToHex(str);
// byteString content - 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x0a

或者,如果这样的函数已经存在,则可以说出其名称

c3frrgcw

c3frrgcw1#

也许是这样的:

const std::string text_hello = "Hello";
static const unsigned int length = text_hello.length();
for (unsigned int i = 0; i < length; ++length)
{
    uint8_t value = static_cast<uint8_t>(text_hello[i]);
    std::cout << std::hex << value << std::endl;
}

我使用了对uint8_t的强制转换,将字符串中的字符强制为整型,这样std::cout将显示十六进制值而不是字符。

相关问题