C++:用字符串初始化char数组?

der*_*erp 1 c++ arrays string

假设我有一个叫做垃圾的字符串.

无论垃圾是什么,我想制作一个char数组.每个元素都是字符串的一个字符.

所以,代码类似于:

const int arrSize = sizeof(garbage); //garbage is a string
char arr[arrSize] = {garbage};
Run Code Online (Sandbox Code Playgroud)

但是,这将给出一个错误"无法在初始化时将字符串转换为char".

这样做的正确方法是什么?我只是想把一个字符串给它做一个字符串并用它来制作一个数组.

Mat*_*ine 12

C++ std::string维护一个内部char数组.您可以使用c_str()成员函数访问它.

#include <string>
std::string myStr = "Strings! Strings everywhere!";
const char* myCharArr = myStr.c_str();
Run Code Online (Sandbox Code Playgroud)

请记住,您无法修改内部阵列.如果要这样做,请复制该数组并修改该副本.

  • 你可以在不获取数组的情况下做你想做的事情 - `myStr.size()`将返回字符串的长度,你可以使用`myStr [i]`访问索引`i`的字符串中的任何字符. (2认同)

小智 6

我认为你所追求的要简单得多:

char arr[] = "some interesting data (garbage)";
Run Code Online (Sandbox Code Playgroud)