【问题标题】:How can I convert a string to a byte array? [closed]如何将字符串转换为字节数组? [关闭]
【发布时间】:2016-06-14 15:52:00
【问题描述】:

如何在 C++ 中将字符串转换为字节数组?

例如,"Hello"48 65 6c 6c 6f

我正在尝试使用此字节数组对内存进行模式搜索。

【问题讨论】:

  • 不清楚“字节数组”的类型是什么。
  • 你在用哪本书?您无法通过在 Google 上胡乱学习语言!
  • 我只是想知道如何做一件简单的事情,我不想买书
  • @Spoody 好吧,看起来很简单的事情可能需要一本书或参考资料来解释完整性。此外,太简单的事情都包含在书籍或在线教程中所涵盖的基础知识中。

标签: c++ string memory type-conversion byte


【解决方案1】:

std::string::c_str() 产生底层 c 字符串/字节数组。

另请参阅std::string::c_str(),了解返回的指针可能无效的情况列表(基本上每次修改字符串时,当然还有 std::string 本身被破坏时)。

如果需要,您可以使用memcpy() 创建它的副本。

【讨论】:

  • std::string::c_str() 将错过返回 ''\0'' 之后的字节。
  • @πάνταῥεῖ std::string::c_str() 将正确返回一个字节数组指针。由代码的调用者来考虑任何空字符并使用例如计数来代替。但它实际上会返回一个字节数组。
  • @Altainia 好吧,我认为std::string::data() 应该更适合这里。
  • @πάνταῥεῖ data() 自 11 日起与 c_str() 相同
猜你喜欢
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2015-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多