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