在c++中将字符串转换为uint8_t数组
Converting a string to uint8_t array in C++
我想要一个std::string对象(如名称)到c++中的uint8_t数组。的函数reinterpret_cast<const uint8_t*>
拒绝我的字符串。由于我使用NS-3编码,一些警告被解释为错误。
如果你想要一个指向string
数据的指针:
reinterpret_cast<const uint8_t*>(&myString[0])
如果您想要string
的数据的副本:
std::vector<uint8_t> myVector(myString.begin(), myString.end());
uint8_t *p = &myVector[0];
字符串对象有一个返回const char*
的.c_str()
成员函数。该指针可以强制转换为const uint8_t*
:
std::string name("sth");
const uint8_t* p = reinterpret_cast<const uint8_t*>(name.c_str());
注意,这个指针只有在原始字符串对象没有被修改或销毁的情况下才有效。
如果您需要一个实际的数组(而不是指针,如其他答案所建议的;这个答案很好地解释了差异),您需要使用<algorithm>
:
std::copy
std::string str = "foo";
uint8_t arr[32];
std::copy(str.begin(), str.end(), std::begin(arr));
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 将具有不同字段的结构转换为 uint8 的数组
- UINT8数组对INT64的质量化失败,但应该起作用
- 将 UInt8 C++值转换为 C# 字节数组
- C 具有 uint8 数组奇怪行为的结构
- 正在从numpy.uint8的数组中提取无符号字符
- Jagged Uint8数组转换为C#字节
- 我如何将bitset转换为字节/uint8数组
- 转换uint8字节数组到任何WPF渲染对象
- 将UINT32值转换为UINT8数组[4]
- 将uint8的数组传递给函数会减小其大小(c++代码)