将值赋给字符串指针

时间:2012-07-27 06:03:36

标签: c++ string

我目前正在分析char和string数据类型。对于char数据类型,以下代码剪辑保持良好:

char value = 'a';
char value1[] = "Good";
char* value2 = "Good";

对于字符串,

string strValue = "Good";
string strVal[3] = {"Good","Better","Best"};

但是下面的赋值会抛出编译错误:

  

“错误:标量对象strPtr在初始化程序中需要一个元素”

string* strPtr = {"Good","Better","Best"}

那么,如何最初将值分配给string*以上?

谢谢, Udhai

3 个答案:

答案 0 :(得分:3)

指针不是数组,那你为什么要假装呢?你可以这样做

string strVal[3] = {"Good","Better","Best"};
string* strPtr = strVal;

答案 1 :(得分:0)

这有效:

std::string* strPtr{new std::string[3]{"Good","Better","Best"}};

这也编译

std::string* strPtr{(std::string[3]){"Good","Better","Best"}};

但是将指针绑定到临时指针,所以请不要这样做。

答案 2 :(得分:-1)

我想你是指std::string

正确的方法是

std::string *s(new std::string);
// or
std::string *s = new std::string;

如果你想要一个指向字符串和

的指针
std::string s_arr[3] = {"Good","Better","Best"};
string* str_p = strVal;

如果你想指向一个字符串数组的开头的指针。