C ++ - 分配一个unsigned char缓冲区,然后用字符串填充它

时间:2014-01-26 17:26:29

标签: c++ arrays unsigned-char

我是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]

1 个答案:

答案 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);