c++:在一行中给char**赋两个值
C++: assign two values to char** in one line?
我尝试一次分配两个c-string:
char **pair = {"name","joe"};
但是我得到错误信息:
'initializing' : cannot convert from 'const char [5]' to 'char **'
但我想类似的东西以前对我有用吗?
你声明了一个指针对指针,但是初始化器是一个数组指针:
const char *pair[] = { "name", "joe" };
如前所述,我在声明中添加了const
关键字。这是因为指针是指向字符串字面量的指针,而字面量是常量,不能更改。添加const
可以帮助程序员避免错误地更改数组中的字符串。
使用c++工具,它将为你省去很多麻烦:
vector<string> field = { "name", "joe" };
尽管你可能需要:
pair<string, string> field("name", "joe");
或者更好,可能是:
struct Person {
Person(const string& name) : name(name) {}
const string name;
};
Person boss("joe");
Joachim方法创建只读字符串。这就是创建const字符串字面量数组的方法。
换句话说,
// MAX_LEN being the max string length.
char pair[][MAX_LEN] = {"name","joe"}; // This makes pair read-writeable,
const char *对[]={"名称","乔"};
这是最好的解决方案
以上答案均正确。选择什么取决于上下文:
- 如果你从不在运行时更改字符串,请使用Joachim Pileborg的方法
- 如果你出于某种原因知道字符串有固定长度,请选择Arun的
-
如果不是1或2,就选Peter Wood的。注意
vector<string> field = { "name", "joe" };
需要c++ 11
相关文章:
- 如何在C++中比较两个char数组
- 如何更好地检查两个 char 变量是否在一组值中?
- 在 char* 数组中添加两个索引
- C++函数返回两个 char 数组的相同索引元素
- *char数组到字符串(两次运行代码和两个不同的结果)
- 为什么Xor-ing两个“ char”阵列显示垃圾位
- 如何在C/ C 中比较两个char的两个2D阵列
- 使用"const char*"和"char*"参数连接两个第三方模块
- 在C 中乘以两个char阵列
- 为什么这两个char阵列不相等
- Qthread char阵列在两个线程之间传递后被摧毁
- 在C 中使用两个CHAR变量评估布尔值
- 计数最低号码.char.从两个字符串中删除以使它们成为字眼
- 如何在c++中将计算分解为两个double和一个char
- C ++中的两个'char*'铸件有什么区别
- 比较c++中的两个char
- c++中连接两个char*的函数
- 连接两个char*会产生奇怪的结果
- 在 c++ 中使用 strcmp 比较两个 char 变量显示从 'char' 到 'const char*' 的无效转换
- 如何验证两个char *是否在Google Mock中相等?