我有char a[] = "abc"
。
我需要这样做:char b [] = a
,即基本上将a复制到b而不必指定b的大小。
我怎样才能在cpp中做到这一点?
答案 0 :(得分:2)
普通数组没有赋值运算符重载。 你必须使用这样的copy函数:
char a[] = "abc";
decltype(a) b;
std::copy( std::begin(a), std::end(a), std::begin(b) );
使用decltype
我们得到数组a
的类型并使用它来声明数组b
。
但在我看来,这仍然不是C ++。
正如评论者建议的那样,只需使用std::string
即可。如果您无法使用std::string
,请解释原因。
std::string a = "abc";
std::string b = a;
更清洁,更少可能出错的事情。