该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
输入类型名 得到类型所占字节数。
利用其他的方法可以实现。不过直接把输入作为sizeof的参数是不可以的。直接传过去的是一个字符串,既不是关键字,也不是(除了字符串以外的变量)变量名字。返回的是这个常量字符串所占的字节数。
只能是预先把各种关键字作为sizeof的操作数,得到结果。然后根据用户的选择,来进行相应的输出。
最简单的。
可以利用switch分支。
比如菜单是这样的
请选择
1: char 2:short int
3: int 4:long
...........
0:EXIT
然后用一个switch分支
int c;
while((c=getchar())!=0)
{
while(getchar()!='\n')
continue;
switch (c)
{
case 1:
printf("sizeof(char)=%d\n",sizeof(char));
break;
case2:
printf("sizeof(short int)=%d\n",sizeof(short int));
break;
case3:
..............................
break;
.
.
.
..
default:
printf("输入错误,请重新输入");
}
如果一定要使用输入类型名字的方式,那么可以使用结构体数组。
struct types
{
char typename[40];
int size;
};
然后用一个数组,保存各种类型的类型名字,以及对应类型所占空间大小。
struct types ty[20]={
{"char",sizeof(char)},
{"short int",sizeof(short int)},
{"int",sizeof(int)},
{"long",sizeof(long)},
.
.
.
.
}
然后通过接收用户从键盘输入的类型名字,在结构体数组中查找typename相同的一项,然后输出size就可以了。