在 C++ 中将字符串转换为 uint8_t 数组
我想要一个 std::string 对象(例如名称)到 C++ 中的 uint8_t 数组。这 函数reinterpret_cast
拒绝我的字符串。由于我使用 NS-3 进行编码,因此一些警告被解释为错误。
I want an std::string object (such as a name) to a uint8_t array in C++. The
function reinterpret_cast<const uint8_t*>
rejects my string. And since I'm coding using NS-3, some warnings are being interpreted as errors.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您想要一个指向
string
数据的指针:如果您想要
string
数据的副本:If you want a pointer to the
string
's data:If you want a copy of the
string
's data:字符串对象有一个
.c_str()
成员函数,它返回一个const char*
。该指针可以转换为 const uint8_t*:请注意,只有当原始字符串对象未被修改或销毁时,该指针才有效。
String objects have a
.c_str()
member function that returns aconst char*
. This pointer can be cast to aconst uint8_t*
:Note that this pointer will only be valid as long as the original string object isn't modified or destroyed.
如果您需要一个实际的数组(而不是指针,正如其他答案所建议的那样;这个答案中很好地解释了差异),您需要使用
中的std::copy
:If you need an actual array (not a pointer, as other answers have suggested; the difference is explained very nicely in this answer), you need to use
std::copy
from<algorithm>
: