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)
我收到错误:"错误:切换数量不是整数".如何解决?
如果您确实需要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方法非常易读,不应引起太多混淆.