我有点困惑为什么我总是在这个简单的程序中得到默认情况。任何帮助将不胜感激...
#include <stdio.h>
char conversion(letter)
{
switch(letter)
{
case 'A':
printf("a\n");
break;
case 'B':
printf("b\n");
break;
default:
printf("Not an upper case letter!\n");
break;
}
return letter;
}
int main()
{
char character;
while ((character = getchar()) != '0')
conversion(character);
}
最佳答案
根据您的描述,default
case 由您输入的大写字母后面的换行符命中:空白字符,例如 '\n'
由换行符产生的字符将由您的 switch()
处理。您可能想使用 isspace()
对空格进行排序(在 <ctype.h>
中声明):
if (!isspace((unsigned char)c)) {
switch (c) {
// ...
}
}
关于c++ - 默认 Switch 语句总是执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20057763/