簡體   English   中英

如何將std :: string內容克隆到新的char []數組中

[英]How do I clone std::string contents to a new char[] array

給定一個std::string ,我如何簡潔地(即單行/函數調用)分配一個可使用適當大小的delete[]釋放的char數組,並將字符串的內容克隆為以null結尾的字符串到char數組中?

我可以這樣做:

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或編寫自己的代碼的解決方案。

C ++庫未實現所需的功能。

游民。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM