![](/img/trans.png)
[英]Reading contents of file into dynamically allocated char* array- can I read into std::string instead?
[英]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.