我有一个学校项目,我正在使用一个菜单,用户可以选择他想做的事情。但是我希望选择变量为char not int。我可以在单个开关盒中添加multiple字符吗?我搜索了一个解决方案,但仅在值是int而不是char时才找到一个解决方案。我尝试过,但是没有用
char choice;
scanf("%c",&choice);
switch(choice) {
case 'S','s': //do something
break;
case 'I','i': //do anotherthing
break;
default: printf("\n Unknown choice !");
break;
}
您可以像这样使用掉线:
case 'S':
case 's':
// do something
break;
case ...
对于初学者,请在scanf中使用以下格式
char choice;
scanf( " %c", &choice );
^^^
(请参阅转换说明符之前的空白)。否则,该功能还将读取空格字符。
例如,您可以使用多个相邻的案例标签
switch(choice)
{
case 'S':
case 's':
//do something
break;
case 'I':
case 'i':
//do anotherthing
break;
default:
printf("\n Unknown choice !");
break;
}
一种替代方法是在切换之前将输入的字符转换为大写。例如
#include <ctype.h>
//...
char choice;
scanf( " %c",&choice );
switch( toupper( ( unsigned char )choice ) )
{
case 'S':
//do something
break;
case 'I':
//do anotherthing
break;
default:
printf("\n Unknown choice !");
break;
}
您可以互相放置多个case
标签:
switch(choice) {
case 'S':
case 's':
//do something
break;
case 'I':
case 'i':
//do anotherthing
break;
default:
printf("\n Unknown choice !");
break;
}