假设我有一个叫做垃圾的字符串。
无论垃圾中有什么,我都想用它制作一个 char 数组。每个元素都是字符串的一个字符。
因此,代码将类似于:
const int arrSize = sizeof(garbage); //garbage is a string
char arr[arrSize] = {garbage};
但是,这将给出一个错误“无法在初始化中将字符串转换为字符”。
这样做的正确方法是什么?我只想给这该死的东西一个字符串并用它制作一个数组。
C++std::string
维护一个内部char
数组。您可以使用c_str()
成员函数访问它。
#include <string>
std::string myStr = "Strings! Strings everywhere!";
const char* myCharArr = myStr.c_str();
请记住,您不能修改内部数组。如果您想这样做,请制作数组的副本并修改副本。
我认为您所追求的要简单得多:
char arr[] = "some interesting data (garbage)";
您可以只使用garbage.data()
,它已经是指向包含您的字符串数据的字符数组的第一个元素的指针。
或者这是一种很重的方法。
#include <string>
std::string temp = "something";
char* myChar = new char(temp.length());
for(int i = 0; i < temp.length(); ++i){
a[i] = temp[i];
}