21xrx.com
2024-12-22 19:10:23 Sunday
登录
文章检索 我的文章 写文章
C++将字节(Byte)数组转换成字符串 (Converting Byte Array to String in C++)
2023-07-02 14:31:25 深夜i     --     --
C++ 字节数组 转换 字符串 Converting Byte Array to String

在C++编程中,有时候需要将一个字节(Byte)数组转换成字符串,这种情况下,C++提供了多种方法来实现转换的操作。本文将介绍几种常用的方法。

方法一:使用std::string类

std::string类是C++ STL库中提供的一个字符串类,可以通过以下方式将字节数组转换为字符串:


#include <string>

#include <iostream>

int main()

{

  const char bytes[] = 0x48;

  std::string str(bytes, sizeof(bytes));

  std::cout << str << std::endl; //输出Hello

  return 0;

}

在此代码中,我们首先定义了一个char类型的数组byte,并且用花括号初始化了它们的值。接着,我们可以使用std::string类中的构造函数,将字节数组传入构造函数,并且使用sizeof()函数获取字节数组的长度。最后,我们使用cout将转换后的字符串输出到控制台上。

方法二:使用memcpy()函数

memcpy()函数是C++中常用的函数之一,它可以在内存之间复制一定数量的字节。如果我们想要将字节数组复制到另一个字符数组中,我们可以使用memcpy()函数。如下所示:


#include <cstring>

#include <iostream>

int main()

{

  const char bytes[] = 0x6C;

  char chars[sizeof(bytes)];

  memcpy(chars, bytes, sizeof(bytes));

  std::cout << chars << std::endl; //输出Hello

  return 0;

}

在此代码中,我们首先定义了一个char类型的数组byte,并用花括号初始化它们的值。接着,我们定义了另外一个字符数组char,它与byte数组有相同的大小。然后,我们可以使用memcpy()函数将byte数组复制到char数组中。最后,我们使用cout将转换后的字符串输出到控制台上。

方法三:使用std::ostringstream类

std::ostringstream类也是C++ STL库中提供的一个类。它可以将任何类型的数据转换为字符串。我们可以使用以下方式将字节数组转换为字符串:


#include <sstream>

#include <iostream>

int main()

{

  const char bytes[] = 0x65;

  std::ostringstream stream;

  for (size_t i = 0; i < sizeof(bytes); ++i)

  {

    stream << bytes[i];

  }

  std::string str = stream.str();

  std::cout << str << std::endl; //输出Hello

  return 0;

}

在此代码中,我们首先定义了一个char类型的数组byte,并用花括号初始化它们的值。然后,我们使用std::ostringstream类的对象stream将byte数组中的字符一个一个地写入流。最后,我们使用stream.str()函数将流对象转换成字符串。

三种方法都可以很好地将字节数组转换成字符串,开发者可以根据自己的需要选择适合自己的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复