0
A
回答
3
您可以在運行時創建稱爲與「新」算子大小的數組:
char* res = new char[str.size()+1];
strncpy(res, str.c_str(), str.size()+1);
-1
使用strlen()來查找字符串的長度,然後malloc()是該大小的char數組。
5
上自由存儲區分配內存,並在一次複印的字符串:
std::string s("abcdef");
...
char* chars=strdup(s.c_str());
當然,您需要手動釋放內存。文檔例如在man page。由於@Loki提到:釋放此內存是通過free(chars)
完成的,而不是通過delete
。另外,您需要包含<cstring>
標題。
如果你想留在C++世界,使用vector
;它可以用兩個迭代器創建來複制它的數據,並且將在堆上分配,和將自行清理。這不是一種享受嗎?
std::vector<char> vec(s.begin(), s.end());
2
std::string s = "hello";
char* c = new char[s.length() + 1]; // '+ 1' is for trailing NULL character.
strcpy(c, s.c_str());
1
#include <string>
int main(int argc, char *argv[])
{
std::string random_data("This is a string");
char *array=new char[random_data.size()+1];
// do stuff
delete[] array;
return 0;
}
1
嘗試:
或者:(最好)
std::vector<char> res(str.begin(), str.end());
或者:如果你想要做的是調用C-結:
str.c_str()
相關問題
- 1. 字符數組到字符串轉換
- 2. 字符串到int數組轉換c#
- 3. C#轉換數組到字符串和
- 4. C++字符串到字符串轉換
- 5. 從字符串轉換爲字符 - C++
- 6. C#將字節數組與字符串轉換爲字符串
- 7. C++字符串到字符轉換
- 8. 字符串的字符數組和字符數組至字符串轉換
- 9. 字符串轉換爲字符數組
- 10. 注意:數組到字符串轉換將數組轉換爲字符串
- 11. 轉:將字符串數組轉換爲Json數組字符串
- 12. 轉換字節數組/字符數組到十六進制字符串用C
- 13. 從字符串數組轉換爲字符數組
- 14. 將JSON字符串轉換爲C#字符串數組
- 15. 字符串數組轉換
- 16. 字符串數組轉換
- 17. 字符串轉換的夫特陣列到到C字符串數組指針
- 18. 將數組轉換爲字符串? c#
- 19. 從字節數組到字符串的數據轉換
- 20. 在C++中將字符數組轉換爲整數字符串
- 21. 如何將字符串轉換爲C++中的字符數組?
- 22. 將字符串向量轉換爲C++中的字符數組
- 23. 轉換系統:字符串^(C#字符串)到C++的std :: string
- 24. 字符串數組到字符串轉換Swift
- 25. 將字符串數組轉換爲字符串數組
- 26. 轉換字符串數組爲數字
- 27. Laravel ORM數組到字符串轉換
- 28. php soapclient數組到字符串轉換
- 29. Laravel數組到字符串轉換
- 30. PHP MYSQLi:數組到字符串轉換
如果'string'包含任何嵌入的空字符,則'strncpy'將截斷數據。 'memcpy'在這裏更合適,或者是一個合適的容器,比如'std :: vector <>'。 – ildjarn