如何将std :: string内容克隆到新的char []数组

时间:2017-04-06 09:19:41

标签: c++ stdstring

给定std::string,我如何简洁地(即单行/函数调用)分配一个可用适当大小的delete[]可用的char数组,并将字符串的内容克隆到char数组中null终止字符串?

我可以这样做:

m_name = new char[name.size() + 1];
(void)name.copy(m_name, name.size());
m_name[name.size()] = '\0';

但它并不简洁。我真正需要的是一个像:

这样的功能
size_type std::basic_string::clone(CharT** dest);
CharT* std::basic_string::clone();

就我所见,这根本不存在。

我曾经工作过的公司实施了自己的标准库,其中包含strnewdup()函数,其工作方式与strdup()类似,但使用new,以避免代码重复。这样的东西可以正常工作,但我在标准C ++库中找不到类似的东西。

我更喜欢只使用标准C ++库而不是Boost或编写自己的代码的解决方案。

1 个答案:

答案 0 :(得分:0)

C ++库未实现所需的功能。

糟糕,