21xrx.com
2024-11-05 16:41:17 Tuesday
登录
文章检索 我的文章 写文章
C++:16进制数组转字符串
2023-07-05 13:07:21 深夜i     --     --
C++ 16进制 数组 转换 字符串

将一个16进制的数组转换成字符串,是C++编程中常见的需求。本文介绍一种简单的方法,通过一个函数来实现数组转字符串的功能。

首先,我们需要定义一个16进制数组。这可以在C++中使用数组语法来完成:


unsigned char arr[] = 0x64;

这里的数组包含了一个字符串"Hello World"的每个字符的16进制表示。

接下来,我们定义一个函数,将这个16进制数组转化成字符串:


std::string hexToString(unsigned char arr[], size_t len) {

 std::stringstream ss;

 for (size_t i = 0; i < len; ++i) {

  ss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(arr[i]);

 }

 return ss.str();

}

这个函数使用了stringstream来将16进制数字转换成字符串。在循环中,我们逐个遍历数组中的元素,并使用setw和setfill来确保每个输出都是两位。最后,函数返回的字符串包含了数组中所有元素的16进制表示,并将它们连续输出。

现在我们只需要调用这个函数来将数组转化成字符串。例如:


std::cout << hexToString(arr, sizeof(arr)) << std::endl;

输出结果应该是:"48656c6c6f20576f726c64",这是"Hello World"字符串的16进制表示。

在C++编程中,将数组转化成字符串是一个常见的需求。通过使用stringstream和setw/setfill函数,我们可以轻松地将16进制数组转化成字符串,并方便地输出结果。

  
  

评论区

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