一个整形转换为字符型的问题

怎么把十进制转化为字符型呀,本来我输入个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);
就知道结果了。
展开
 我来答
L_o_o_n_i_e
2011-09-09 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5233万
展开全部
十进制整型数,转化为字符型用 sprintf
char str[20];
int a=123;
sprintf(str,"%d",a); // 存放到 str 里
printf("%s\n",str); // 打印出来看。
==
如果你只想转 1 位数,用 %c
int a=5;
printf("%c", a + '0'); // 这里 + '0' 是把a转成 ASCII 编码值。
手机用户57436
2011-09-09 · 超过10用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:48.5万
展开全部
首先,b是整型的,所以等式右边的值一定要能够用整形来表示,再次,要知道,‘0’表示的是‘0’这个字符,它的ASCII值是48(好像是,不重要),而a表示‘5’这个字符,两个字符相减就相当于他们的ASCII值做差,很明显,0和5的ASCII值相差5,所以答案就是5了。你要知道大概的数字和字母的ASCII值都是多少,记住大概就可以,真要用,测试一下就好了。
追问
我这个程序如果把里面的0换成35把里面的9换成38的话,%c就能出现我想要的结果a=#和b=&为什么换成0或9就不会出现它们在ASCII码表里对应的字符呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式