首页 > 后端开发 > C++ > 如何在 C 中将十六进制字符串转换为字节数组或字符数组?

如何在 C 中将十六进制字符串转换为字节数组或字符数组?

Patricia Arquette
发布: 2024-12-28 05:27:10
原创
223 人浏览过

How to Convert a Hex String to a Byte Array or Character Array in C  ?

将十六进制字符串转换为字节数组

在数据处理领域,经常需要将十六进制字符串转换为字节数组以促进高效存储和处理。此过程涉及将每对十六进制数字转换为相应的二进制表示形式。

将十六进制字符串转换为字符数组

如果您希望将十六进制字符串转换为字符数组,您可以利用以下代码:

std::vector<char> HexToBytes(const std::string& hex) {
  std::vector<char> bytes;

  for (unsigned int i = 0; i < hex.length(); i += 2) {
    std::string byteString = hex.substr(i, 2);
    char byte = (char) strtol(byteString.c_str(), NULL, 16);
    bytes.push_back(byte);
  }

  return bytes;
}
登录后复制

此实现利用了内在的 strtol()熟练地将文本转换为字节的函数。值得注意的是,它能够处理任何偶数长度的十六进制字符串。

示例:

std::string hex = "01A1";
auto bytes = HexToBytes(hex);
登录后复制

此代码将十六进制字符串“01A1”转换为名为的字符数组包含二进制数据的字节。随后,您可以将此数据写入文件并使用 hexdump -C 检查它以验证其准确性。

以上是如何在 C 中将十六进制字符串转换为字节数组或字符数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板