我有一个学校项目,我正在制作一个菜单,用户可以在其中选择他想做的事情。我希望选择变量是 char
,不是 int
.我可以在一个 switch
中添加多个字符吗?案件?我搜索了一个解决方案,但我只在值为 int
时找到了一个解决方案。 ,不是 char
.我试过这个,但没有用:
char choice;
scanf("%c", &choice);
switch(choice)
{
case 'S', 's':
// do something
break;
case 'I', 'i':
// do another thing
break;
default:
printf("\nUnknown choice!");
break;
}
最佳答案
对于初学者在 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;
}
关于c - C 中 SWITCH CASE 中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60624380/