C++,从字符串到char数组的转换

Pum*_*kin 0 c++ arrays

我想执行上面提到的操作,但是我想确保char数组与手头的字符串大小完全相同.

所以真正的问题是,如何制作一个大小将在运行时确定的数组?

xto*_*ofl 5

在免费商店上分配内存,并一次性复制字符串:

std::string s("abcdef");

...
char* chars=strdup(s.c_str());
Run Code Online (Sandbox Code Playgroud)

当然,您需要手动释放内存.文档,例如在手册页上.正如@Loki所提到的:释放这些记忆是通过free(chars)而不是通过delete.此外,您还需要包含<cstring>标题.

如果你想留在c ++世界,请使用vector; 它可以用两个迭代器创建,从中复制数据,并在堆上分配,自行清理.这不是一种享受吗?

std::vector<char> vec( s.begin(), s.end() );
Run Code Online (Sandbox Code Playgroud)