gpt4 book ai didi

c++ - 在 C++ 中将 uint8_t 数组转换为字符串

转载 作者:行者123 更新时间:2023-12-01 18:40:42 24 4
gpt4 key购买 nike

我有一个 uint8_t 类型的数组。我想创建一个字符串来连接数组的每个元素。这是我使用 ostringstream 的尝试,但之后字符串似乎是空的。

std::string key = "";
std::ostringstream convert;
for (int a = 0; a < key_size_; a++) {
convert << key_arr[a]
key.append(convert.str());
}

cout << key << endl;

最佳答案

试试这个:

std::ostringstream convert;
for (int a = 0; a < key_size_; a++) {
convert << (int)key[a];
}

std::string key_string = convert.str();

std::cout << key_string << std::endl;

ostringstream 类就像一个字符串生成器。您可以向其中附加值,完成后可以调用它的 .str() 方法来获取包含您放入其中的所有内容的 std::string .

在将 uint8_t 值添加到 ostringstream 之前,您需要将它们转换为 int,因为如果您不这样做,它会处理它们作为字符。另一方面,如果它们确实代表字符,则需要删除 (int) 转换才能看到实际的字符。

<小时/>

编辑:如果您的数组包含 0x1F 0x1F 0x1F 并且您希望字符串为 1F1F1F,则可以使用 std::uppercasestd::hex操纵器,像这样:

std::ostringstream convert;
for (int a = 0; a < key_size_; a++) {
convert << std::uppercase << std::hex << (int)key[a];
}

如果想返回小数和小写,则需要使用 std::nouppercasestd::dec .

关于c++ - 在 C++ 中将 uint8_t 数组转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29320434/

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