在C ++中将uint8_t *转换为std :: string?

时间:2010-12-22 11:54:42

标签: c++ string

  

可能重复:
  How to Convert Byte* to std::string in C++?

我在嵌入式设备上并尝试接收消息。 此邮件由const uint8_t* data及其长度size_t len提供。

现在我需要一个std::string来输出我的数据。

3 个答案:

答案 0 :(得分:8)

如果您不想转换编码,则可以使用:

std::string s( data, data+len );

如果要将UTF-8转换为平台使用的任何系统编码,则需要使用某些特定于平台的方法。

答案 1 :(得分:1)

您的uint8*字符串是否以null结尾?如果是这样,你可以这样做:

std::string mystring(data);

答案 2 :(得分:0)

对于某些情况sizeof(uint8)!= sizeof(char),你可以这样做:

std::string output( len, 0 );
for ( size_t i = 0; i < len; ++i )
  output[ i ] = static_cast<char>( data[ i ] );