一个整形转换为字符型的问题
怎么把十进制转化为字符型呀,本来我输入个0,应该运行出来的结果是nul的,输入个9应该是ht的,结果输出的是空,后来我把输出里的%c改成了%s结果0的结果是(null),...
怎么把十进制转化为字符型呀,本来我输入个0,应该运行出来的结果是nul的,输入个9应该是ht的,结果输出的是空,后来我把输出里的%c改成了%s结果0的结果是(null), 9的结果是-c-copyright (c) 1988 borland intl.这是什么意思呀。
不好意思,现在附上代码:
#include<stdio.h>
void main()
{
int a,b;
a=0;
b=9;
printf("a=%c,b=%c\n",a,b);
}
运行结果是:a= ,b= ,
改成printf("a=%s,b=%s\n",a,b);
结果如下:
a=(null),b=-c-copyright (c) 1988 borland intl.,
我这个程序如果把里面的0换成35把里面的9换成38的话,%c就能出现我想要的结果a=#和b=&为什么换成0或9就不会出现它们在ASCII码表里对应的字符呢?
我知道结果了,ascii码有的是不能打印的,对照ASCII码表,运行一下
int a;
for(a=0;a<127;a++)
printf("%d->%c",a,a);
就知道结果了。 展开
不好意思,现在附上代码:
#include<stdio.h>
void main()
{
int a,b;
a=0;
b=9;
printf("a=%c,b=%c\n",a,b);
}
运行结果是:a= ,b= ,
改成printf("a=%s,b=%s\n",a,b);
结果如下:
a=(null),b=-c-copyright (c) 1988 borland intl.,
我这个程序如果把里面的0换成35把里面的9换成38的话,%c就能出现我想要的结果a=#和b=&为什么换成0或9就不会出现它们在ASCII码表里对应的字符呢?
我知道结果了,ascii码有的是不能打印的,对照ASCII码表,运行一下
int a;
for(a=0;a<127;a++)
printf("%d->%c",a,a);
就知道结果了。 展开
2个回答
展开全部
首先,b是整型的,所以等式右边的值一定要能够用整形来表示,再次,要知道,‘0’表示的是‘0’这个字符,它的ASCII值是48(好像是,不重要),而a表示‘5’这个字符,两个字符相减就相当于他们的ASCII值做差,很明显,0和5的ASCII值相差5,所以答案就是5了。你要知道大概的数字和字母的ASCII值都是多少,记住大概就可以,真要用,测试一下就好了。
追问
我这个程序如果把里面的0换成35把里面的9换成38的话,%c就能出现我想要的结果a=#和b=&为什么换成0或9就不会出现它们在ASCII码表里对应的字符呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询