C++ - Allocate an unsigned char buffer and then fill it with a string

╄→гoц情女王★ 提交于 2020-01-02 19:18:09

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!