SWITCH语句中的case后可以是字符串吗?

void check(char req)
{
int num;
if(req=='end')
cout<<"dsf"<<endl;
else
switch(req){
case 'AddLeft':
cin>>num;
AddLeft(num);
case 'AddRight':
cin>>num;
AddRight(num);
case 'IsEmpty':
IsEmpty();
case 'IsFull':
IsFull();
case 'DeleteLeft':
DeleteLeft(num);
case 'DeleteRight':
DeleteRight(num);
default:
cout<<"You input wrong request!"<<endl;
}
}

不可以的,比如下面的程序:

#include<stdio.h>

void main()
{
char *p="abc";

switch(p)
{
case "abc":
break;
}

}
编译都通不过:
error C2450: switch expression of type 'char *' is illegal
error C2051: case expression not constant
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-05-20
可以是单个字符,不可以是字符串

char p;
switch(p)
{
case "a":
break;
case "b":
break;
case "c":
break;
}
是可以的;

但是你的程序里是多个字符,也就是字符串,是不可以的
第2个回答  推荐于2018-05-06
可以吧,不过你怎么用单引号括起来呢?
果然不可以。。。case后面的表达式必须能转换成整数才行,就是说需要是字符和整数。。。本回答被网友采纳
第3个回答  2012-09-05
当然可以了~~~flex其实就是JAVA的语法,字符串用""(双引号)表示!
第4个回答  2008-05-20
case后面接的是状态就是你定义的switch后面那个,可以定义req在某种状态,这是字符串表示的是一种模式或状态

SWITCH语句中的case后可以是字符串吗?
不可以的,比如下面的程序:include<stdio.h> void main(){ char *p="abc";switch(p){ case "abc":break;} } 编译都通不过:error C2450: switch expression of type 'char *' is illegal error C2051: case expression not constant ...

switch语句中case后面可以是字符吗
选B,case后面只能是整型或字符型的常量或常量表达式。一、switch是另外一种选择结构的语句,用来代替简单的、拥有多个分支的if else 语句,基本格式如下:switch(表达式){case 整型数值1: 语句 1;case 整型数值2: 语句 2;...case 整型数值n: 语句 n;default: 语句 n+1;} 二、它的执行过程是:...

C++中switch语句中case分句后面只能跟字符量吗?
只要是能表示成 整数结果的表达式 全都可以

switch语句中case后面可不可以加字符串?
字符串常量,例如:双引号括起的 "Z", 虽然是常量, 但它们不是 整型,所以不允许。其它语言,要看它们自己的规定。

switch case 语句问题 表达式可以使字符串吗
不行,可以是整形,包括bit,int,long。在C++里的话用字符也可以,比如case 'c',因为字符在内存里是用一个整数来表示的,也就是传说中的ASC码

case后来可以直接接字符串吗
不允许字符串的 只允许有序类型,比如说char,int等

java Switch语句编译出错 孤立的case是什么意思
case 后面是常量表达式,并且必须是与条件表达式类型相兼容的值!也就是说,比如你的switch(a)里面的a是int 型的,那么case 后的值也应是和int 兼容的,如果你定义的a是字符型的话,那么b就应该加上单引号。另外,常量表达式的值可以是字符,但不能是字符串。

C语言编程switch语句中case后面如果是数字
swithc(k){ case 1: \/\/k的值为1跳到此行 case 'A': \/\/k的值为'A'跳到此行,'A'代表字母A的ASCII码,即0x41 或65 case '5': \/\/k的值为'5'跳到此行,'5'代表数字5的ASCII码,即0x35 或53 }

swich语句case后面能加字符型要加单引号吗
要加。例如:char ch;scanf("%d",&ch);switch(ch){ case 'A':break;case 'B':break;default:break;}

(C++)switch的case是只能基于char的?不可以基于string的?
尽管"q"是个常字符串。switch case这种语句又要求必须在case后面做常数比较,所以就会报错了。是的,switch和case的配合只能应用于内置类型。string类型不可以用switch 补充:按键是用这个switch的,但是按键回馈到windows消息的时候已经转成整数了,所以可以用switch的。

相似回答