如何将标准::字符串内容克隆到新的 char[] 数组



给定一个std::string,我如何简洁地(即单行/函数调用(分配一个可用大小的delete[]的字符数组,并将字符串的内容克隆到字符数组中作为以空结尾的字符串?

我可以这样做:

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

但它并不简洁。我真正需要的是这样的函数:

size_type std::basic_string::clone(CharT** dest);
CharT* std::basic_string::clone();

我所知,这并不存在。

我曾经工作的一家公司实现了他们自己的标准库,其中包括一个strnewdup()函数,它的工作方式与strdup()一样,但使用new,以避免代码重复。这样的东西可以正常工作,但我在标准C++库中找不到任何对类似内容的引用。

我更喜欢仅使用标准C++库的解决方案,而不是像 Boost 或编写我自己的代码这样的东西。

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

无赖。

相关内容

  • 没有找到相关文章

最新更新