问题
I am realively new to C++
so please forgive me if this is a naive question - but I'm stuck on finding an answer.
I am trying to create an unsigned char
array of size 1024
which I have done with the following code:
unsigned char *r_record = new unsigned char[1024]();
Now I have an std::string
variable:
std::string hw = "Hello Word";
And I would like to populate the r_record
with hw
(i.e., 'Hello World') starting at the 10'th
byte.
How can I place hw
into r_record
?
So in effect, my r_record data would look like (where the .
's are empty):
[.........Hello World......and so on]
回答1:
You can use std::copy, from the algorithm
header:
std::copy(hw.begin(), hw.end(), r_record + 10);
If you want to use a vector instead of the dynamically allocated array (a good idea), then
std::vector<unsigned char> r_record(1024); // 1024 zero initialized elements
std::copy(hw.begin(), hw.end(), r_record.begin() + 10);
来源:https://stackoverflow.com/questions/21366739/c-allocate-an-unsigned-char-buffer-and-then-fill-it-with-a-string