C语言-我可以在案例中使用字符作为数字旁边的开关吗?

C语言-我可以在案例中使用字符作为数字旁边的开关吗?,c,char,switch-statement,C,Char,Switch Statement,我想让用户输入+或-或*或/但我不知道如何在开关中使用它们,所以我必须让用户输入数字表示算术符号,如1表示+2表示-等等。。。这样我就可以使用开关了。你可以。比如说 char c = '+'; switch( c ) { case '+': puts( "Plus" ); break; case '-': puts( "Minus" ); break; default: puts( "Unknown operation" ); break; }

我想让用户输入+或-或*或/但我不知道如何在开关中使用它们,所以我必须让用户输入数字表示算术符号,如1表示+2表示-等等。。。这样我就可以使用开关了。

你可以。比如说

char c = '+';

switch( c )
{
case '+':
    puts( "Plus" );
    break;
case '-':
    puts( "Minus" ); 
    break;
default:
    puts( "Unknown operation" );
    break;
}
根据C标准(6.8.4.2切换语句)

3每个箱子标签的表达式应为整数常量 表达式且同一个表达式中没有两个大小写常量表达式 转换后的开关语句应具有相同的值。可能有 switch语句中最多只能有一个默认标签。(任何附件) switch语句可能有默认的标签或大小写常量表达式 具有与封闭空间中的大小写常量表达式重复的值 switch语句。)


字符文字是整数常量。

下面是一个非常快速而肮脏的示例:

char a='+';  

switch(a) 
{
    case '+' : //do plus stuff;
      break
    case '-' : //do minus stuff;
      break;
    default:  // Say illegal input or whatever;  
      break;
}

我认为你需要重写这个问题——同时提供你所拥有的tried@MichaelDorgan这很奇怪,因为我的网速太慢了。:)非常感谢你们!因此,只要我将字符放在单引号中,它就可以在switch right中充当整数?@AZINEZ是的,字符文字可以用作大小写标签。