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