如何将 const uint8_t [] 转换为 std::string?

Posted

技术标签:

【中文标题】如何将 const uint8_t [] 转换为 std::string?【英文标题】:How to convert const uint8_t [] to std::string? 【发布时间】:2021-04-11 05:23:54 【问题描述】:

以下代码产生错误,

    void emitData(const uint8_t data[], size_t size)
    
        std::string encodedMessage(data, size);
    

错误,

no instance of constructor "std::__2::basic_string<_CharT, _Traits, _Allocator>::basic_string [with _CharT=char, _Traits=std::__2::char_traits<char>, _Allocator=std::__2::allocator<char>]" matches the argument list -- argument types are: (const uint8_t *, size_t) 

【问题讨论】:

您要将整数(即:“12345”)存储为字符串还是将const unint8_t[] 用作原始字符串(如const char[])? @DhirajWishal 这是一个字节缓冲区,所以我需要转换为字符串。 不要在旧问题中编辑新问题。新问题是一个单独的问题,有单独的答案。 【参考方案1】:

使用接受两个迭代器作为参数的重载构造函数:开始和结束迭代器值。简单的指针就可以解决问题:

std::string encodedMessagedata, data+size;

【讨论】:

谢谢。我在先前声明的字符串上尝试了您的解决方案,但它返回了另一个错误。让我编辑问题。 这是一个不同的问题,与原始问题无关。请为每个 ***.com 问题提出一个问题。您可以随时发布另一个问题。 对不起。我找到了其他问题的答案。我必须使用赋值运算符。

以上是关于如何将 const uint8_t [] 转换为 std::string?的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中将 const vector<uint8_t> 转换/转换为 const vector<char>

如何将字符数组转换为 uint8_t

如何将 stringstream 十六进制字符串字符对转换为单个 uint8_t 等效二进制值

将 Intrinsic xmm 寄存器转换为 uint8_t 数组[16]

如何在 C++ 中将 uint8_t 的向量转换为 std::string?

将 unsigned char 数组转换为 uint8_t 数组?