我是C++
的新手,所以如果这是一个天真的问题,请原谅我 - 但我一直在寻找答案。
我正在尝试使用以下代码创建一个unsigned char
大小为1024
的数组:
unsigned char *r_record = new unsigned char[1024]();
现在我有一个std::string
变量:
std::string hw = "Hello Word";
我想从r_record
字节开始填充hw
10'th
(即“Hello World”)。
如何将hw
放入r_record
?
所以实际上,我的r_record数据看起来像(.
的空是):
[.........Hello World......and so on]
答案 0 :(得分:8)
您可以使用algorithm
标题中的std::copy
:
std::copy(hw.begin(), hw.end(), r_record + 10);
如果你想使用向量而不是动态分配的数组(一个好主意),那么
std::vector<unsigned char> r_record(1024); // 1024 zero initialized elements
std::copy(hw.begin(), hw.end(), r_record.begin() + 10);