C++ - выделить буфер без знака и затем заполнить его строкой

Я действительно новичок в C++ поэтому, пожалуйста, прости меня, если это наивный вопрос - но я застрял в поиске ответа.

Я пытаюсь создать unsigned char массив размеров 1024 что я сделал с помощью следующего кода:

unsigned char *r_record = new unsigned char[1024]();

Теперь у меня есть std::string переменная:

std::string hw = "Hello Word";

И я хотел бы заполнить r_record с hw (то есть "Hello World"), начиная с 10'th байт.

Как я могу разместить hw в r_record ?

Таким образом, мои данные r_record будут выглядеть так (где . пустые):

[.........Hello World......and so on]

1 ответ

Решение

Ты можешь использовать std::copy, от algorithm заголовок:

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);
Другие вопросы по тегам