switch语句字符串
时间: 2023-10-11 17:05:08 浏览: 201
switch不能字符串比较解决方法
在C语言中,switch语句是根据表达式的值来选择执行不同的代码块。通常情况下,switch语句的表达式是整数类型。然而,从C语言的C11标准开始,支持使用字符串作为表达式。
下面是一个使用字符串作为switch语句表达式的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char fruit[20];
printf("请输入一种水果:");
scanf("%s", fruit);
switch (fruit) {
case "apple":
printf("苹果\n");
break;
case "banana":
printf("香蕉\n");
break;
case "orange":
printf("橙子\n");
break;
default:
printf("未知水果\n");
break;
}
return 0;
}
```
在上面的示例中,我们使用了一个字符串数组`fruit`来存储用户输入的水果名称。然后,将该数组作为switch语句的表达式。在case分支中,我们使用字符串常量来比较表达式的值。当用户输入的水果名称与case分支中的字符串常量匹配时,相应的代码块会被执行。
需要注意的是,C语言中的字符串比较不能直接使用`==`运算符进行比较,而是需要使用`strcmp()`函数。但是,有些编译器可能对使用字符串作为switch语句表达式进行了扩展,可以直接使用字符串常量进行比较。但是,为了保证代码的可移植性,最好使用`strcmp()`函数进行字符串比较。
阅读全文