switch-case用字符串去判断
时间: 2023-11-23 20:04:28 浏览: 40
在C++11及以上版本中可以使用`std::unordered_map`结合lambda表达式来实现类似于switch-case的字符串判断。比如下面这个例子:
```
#include <iostream>
#include <unordered_map>
int main() {
std::string str = "case2";
std::unordered_map<std::string, int> map{
{"case1", 1},
{"case2", 2},
{"case3", 3}
};
std::cout << map[str] << std::endl;
return 0;
}
```
这个程序会输出`2`,因为`str`等于`"case2"`,而`map`中`"case2"`对应的值为`2`。
相关问题
switchcase 判断字符串
在JavaScript中,switch case语句可以用于判断字符串。但是需要注意的是,switch case语句在比较时使用的是全等号“===”,因此需要确保每个case后面的字符串与待比较的字符串类型和值都完全相同。下面是一个例子:
```
switch(str) {
case "apple":
// do something
break;
case "banana":
// do something
break;
default:
// do something
}
```
在这个例子中,如果str的值为"apple"或"banana",则会执行相应的代码块。如果str的值不是这两个字符串中的任何一个,则会执行default代码块。需要注意的是,每个case后面的代码块必须以break语句结束,否则会继续执行下一个case的代码块。
c switch case判断字符串
在C语言中,switch/case语句只能用于整型或字符型数据的判断,无法直接用于字符串的判断。但是可以通过将字符串转换为整型或字符型数据来实现字符串的判断。以下是两种实现方法:
1.使用枚举类型:将每个字符串定义为一个枚举类型,然后在switch/case语句中使用枚举类型进行判断。例如:
```c
#include <stdio.h>
enum Color {RED, GREEN, BLUE};
int main() {
enum Color color = RED;
switch (color) {
case RED:
printf("The color is red.\n");
break;
case GREEN:
printf("The color is green.\n");
break;
case BLUE:
printf("The color is blue.\n");
break;
default:
printf("Unknown color.\n");
break;
}
return 0;
}
```
2.使用strcmp()函数:strcmp()函数可以比较两个字符串是否相等,可以将需要判断的字符串与每个case语句中的字符串进行比较。例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char color[10] = "red";
if (strcmp(color, "red") == 0) {
printf("The color is red.\n");
} else if (strcmp(color, "green") == 0) {
printf("The color is green.\n");
} else if (strcmp(color, "blue") == 0) {
printf("The color is blue.\n");
} else {
printf("Unknown color.\n");
}
return 0;
}
```