关于char变量的switch语句

时间:2015-12-23 13:42:52

标签: c++

我们使用的库定义了常量,我们有:

const char field[] = "666"

我想:

switch(an_int){
    case field:

有没有办法实现这个目标?我得到一个编译器错误,说字段在常量表达式中不可用(GCC 5.2)。

如果可能,我真的希望避免修改字段声明。

2 个答案:

答案 0 :(得分:2)

field是一个数组。它不是switch上的单一值。

当你将字符数组的内容解释为整数值时,你会尝试switch

使用atoi()或帮助std::istringstream的{​​{1}}将数组转换为operator >>变量,然后int就可以了

答案 1 :(得分:1)

不,char数组/字符串上不能有switch语句。如果您确定该字段将包含数值,则将char数组转换为整数。