<分区>
如何使用 switch-case 在 C++ 中比较 char 数组? 这是我的代码的一部分:
char[256] buff;
switch(buff){
case "Name": printf("%s",buff);
break;
case "Number": printf("Number "%s",buff);
break;
defaul : break
}
我收到错误:“错误:开关数量不是整数”。我该如何解决?
<分区>
如何使用 switch-case 在 C++ 中比较 char 数组? 这是我的代码的一部分:
char[256] buff;
switch(buff){
case "Name": printf("%s",buff);
break;
case "Number": printf("Number "%s",buff);
break;
defaul : break
}
我收到错误:“错误:开关数量不是整数”。我该如何解决?
最佳答案
如果你真的需要一个 switch 语句,你需要转换你的 buff
变量为整数。为此,您可以使用哈希函数或 std::map
.
简单的方法是制作一个 std::map<std::string,int>
包含您要在与唯一 int
关联的开关中使用的键值。你会得到类似的东西:
std::map<string,int> switchmap;
...
switch(switchmap.find(std::string(buff))->second){
...
}
std::map
方法可读性强,不会引起太多混淆。
关于c++ - C++中的开关案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16721482/