Чтобы скопировать из a в b, возьмите std::copy(src_start,src_end,dest_start)
, который увеличивает src_start
, и копируйте его в следующий элемент назначения, пока не будет встречено src_start==src_end
.
memcpy(oldname,name,strlen(name)+1)
// is the same as
std::copy(name,name+strlen(name)+1,oldname)
.. за исключением того, что он также будет работать для не POD, и вам не нужно возиться с длиной в байтах, если один элемент больше одного байта.
Однако, если вы просто хотите манипулировать строками, предоставляется класс std::string
(и std::wstring
для широких строковых символов). Объединить их так же просто, как:
std::string s = "name",s2 = ..,s3 = ..;
s = s2+s+s3+"Hello";
Ничто не мешает вам использовать семейство функций strxxx
в C ++, но я настоятельно рекомендую вам переключиться на std::string
и остальные STL. Он также не идеален, но гораздо менее подвержен ошибкам.