在c ++中切换案例

joh*_*ohn 1 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
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:"错误:切换数量不是整数".如何解决?

Mar*_*sen 9

如果您确实需要switch语句,则需要将buff变量转换为整数.为此,您可以使用哈希函数或std::map.

简单的方法是std::map<std::string,int>在与唯一int值关联的开关中包含要使用的键.你会得到类似的东西:

std::map<string,int> switchmap;
...
switch(switchmap.find(std::string(buff))->second){
...
}
Run Code Online (Sandbox Code Playgroud)

该std::map方法非常易读,不应引起太多混淆.

  • 我喜欢这个.可能超出了他的家庭作业水平,但它解决了问题并使用了开关语句 - 很好! (2认同)