Вы должны выбрать свое строковое представление.
Если по каким-то причинам вам приходится использовать C-строки, то ваша функция называется strncpy
.
std::strncpy(dest, source, max_size_of_dest);
Читайте о предостережениях в ссылке.
Однако, если вы можете использовать лучшую абстракцию, тогда вам предлагается перейти на std::string
.
void copy(std::string const& source, std::string& dest) { dest = source; }
Не очень важно иметь дело с длиной буфера (и, следовательно, не портить чаще, чем нет).
Обратите внимание, что ничто не мешает вам манипулировать std::string
в вашем приложении и при этом поддерживать связь с методами C: .c_str()
очень помогает.