这是我在《 C编程:一种现代方法(第二版)》一书中试图做的第7章:基本类型的项目4。问题看起来像这样:Question description here
#include<stdio.h>
#include<ctype.h>
int main(){
char apb;
int num;
printf("Enter phone number:");
do{
apb = getchar();
apb = toupper(apb);
while(apb != ' ' || apb != '\n'){
switch(apb){
case 'A': case'B': case "C":
printf("2");break;
case 'D': case'E': case "F":
printf("3");break;
...
case 'Y': case'W': case "X":
printf("9");break;
default:printf("Error:please try again\n");
}
}
}while{apb >='A' && apb <='Z'};
return 0;
}
当我尝试编译代码时,对于案例标签的每个部分,编译器抛出错误都说:
“ [错误]大小写标签没有减少为整数常量。]
这让我有点好奇,因为我发现使用常量字符类型作为大小写标签时没有错误,所以我犯了什么样的错误。是否与我使用的编译器版本有关?
case 'A': case'B': case "C":
虽然
'A'
和'B'
是字符,"C"
是字符指针