c++ - C++中的开关案例

标签 c++ switch-statement

<分区>

如何使用 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/

相关文章:

c++ - 如何不在 OpenGL 中使用着色器覆盖顶点颜色?

c++ - 有没有图片库可以裁掉图片的白边?

c++ - 如何在 root 用户拥有的文件夹中以编程方式创建文件

c++ - 在 .Net C++ 中将 EventHandler 转换为 MouseEventHandler?

javascript - 为什么我的 case 语句 bool 赋值中出现非法 token 错误?

c++ - 打印带有千位和百万位分隔符的整数

java - Kotlin 'when' 语句与 Java 'switch'

c++ - 如何在 C++ 中使用 switch 语句显示价格差异

javascript - 处理 switch 语句中的组合案例和重复案例

C 编程循环 switch case(如果它是默认值)