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