unsigned char 类型

unsignedshorti=0;unsignedcharkey[5];for(i=0;i<5;i++){key[i]=(unsignedchar)i;}CEdit*pe... unsigned short i=0;
unsigned char key[5];

for(i=0;i<5;i++)
{
key[i]= (unsigned char)i;
}
CEdit* pedit = (CEdit*)GetDlgItem(IDC_EDIT_DISP);
pedit->SetWindowText((char*)key);
MessageBox((char*)key【0】,"",0);
为什么编辑框和对话框显示为空,该怎么写才能显示01234。急
zubyzuby 太厉害了。只是我还有点不明白为什么(unsigned char)(i+‘0’)结果会是i,并且长度是1,难到‘0’是字符结束符,那长度也该是二啊,当不加‘0’时却是空值,实在想不明白。
最佳答案是zubyzuby 的,不过要是谁能解释我补充的问题我再加分。
展开
 我来答
lvenle
2007-09-04 · 超过14用户采纳过TA的回答
知道答主
回答量:39
采纳率:100%
帮助的人:30.4万
展开全部
你存入的是数字,却要按字符输出,可能会有转换问题

可以把数字转换成字符,
int key[5];

char str[5];
sprintf(str+i,"%d",key[i]);(省了for循环)

然后再输出str,应该就可以了,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_weiya
2007-09-04
知道答主
回答量:19
采纳率:0%
帮助的人:1.8万
展开全部
unsingned char 的第一位(也就是第0位存的是整个字符串的长度),所以不处理第一个字符就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhr3218
2012-04-12
知道答主
回答量:2
采纳率:0%
帮助的人:3317
展开全部
i+'0' 是一种隐性转换 将i转换成整型了
追问
盗我的账号,就是为了问这个白痴问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科精选
高粉答主

2021-01-14 · 每个回答都超有意思的
知道答主
回答量:60.8万
采纳率:14%
帮助的人:3.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zubyzuby
推荐于2016-04-04 · TA获得超过1539个赞
知道小有建树答主
回答量:1118
采纳率:100%
帮助的人:1218万
展开全部
补充:

楼主没有弄清楚整数1和字符'1',建议看一下ASCII码表
char ch1 = 0;
char ch1 = '\0';
char ch2 = '0';

'0' 和 '\0'是不同的
'0' 是字符,用0x30(10进制=48)表示
'\0'是字符串结束符,就是整数0

可以用0代替'\0',但是为了标明是字符串结束符最好用'\0',这样便于程序阅读和查错。

char ch1 = '\0'; /* char ch1 = 0;也可以 */
char ch2 = '0';
printf("%d %c", ch1,ch2);/*检验*/

字符数组和字符串的区别

字符数组用来存储字符串,输出字符串的时候,遇到'\0'就结束,后面的字符不会输出
如果数组没有字符串结束符,输出字符串可能会有数不完的乱码,甚至会因为访问不能访问的地址导致程序异常终止
char ch[5];
cha[0] = '0';
cha[1] = '1';
cha[2] = '2';
cha[3] = '3';
cha[4] = '4';
printf("%s", ch);/* 输出结果无法预料 */

------------------------------------------

unsigned short i=0;
unsigned char key[6]; /* 字符串 “01234“ 要6个位置存储,字符串结束符'\0'要占一个位置,计算字符串长度的时候不包括'\0' */

for(i=0;i<5;i++)
{
key[i]= (unsigned char)(i + '0'); /* 用字符'0', '1','2','3','4'*/
}
key[i] = '\0'; /* 添加字符串结束符 */
CEdit* pedit = (CEdit*)GetDlgItem(IDC_EDIT_DISP);
pedit->SetWindowText((char*)key);
MessageBox((char*)key,"",0); /* 不能用(char*)key[0] */
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式