永发信息网

unsigned char 类型

答案:4  悬赏:70  手机版
解决时间 2021-04-04 04:27
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 的,不过要是谁能解释我补充的问题我再加分。
最佳答案
补充:

楼主没有弄清楚整数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 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];

for(i=0;i<5;i++)
{
key[i]= (unsigned char)(i + '0');
}
key[i] = '\0';
CEdit* pedit = (CEdit*)GetDlgItem(IDC_EDIT_DISP);
pedit->SetWindowText((char*)key);
MessageBox((char*)key,"",0);
全部回答
unsingned char 的第一位(也就是第0位存的是整个字符串的长度),所以不处理第一个字符就可以
你存入的是数字,却要按字符输出,可能会有转换问题 可以把数字转换成字符, int key[5]; char str[5]; sprintf(str+i,"%d",key[i]);(省了for循环) 然后再输出str,应该就可以了,
补充:

楼主没有弄清楚整数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 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]; 

for(i=0;i<5;i++) 
{ 
key[i]= (unsigned char)(i + '0'); 
} 
key[i] = '\0'; 
cedit* pedit = (cedit*)getdlgitem(idc_edit_disp); 
pedit->setwindowtext((char*)key); 
messagebox((char*)key,"",0); 
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
AutoCAD怎么用正交作竖直线
四年上册语文寒假作业答案人教版
外地户口能在秦皇岛办理医疗保险吗?急!急!
4.8x一3.6x=7.8怎样检验
穿衣助手退货后,驳回退款,我再次申请退款,但
鑫源橡塑防水在什么地方啊,我要过去处理事情
云闪付的支付密码是每个银行设每个银行的吗
天桥风云全明星第一季的选手
为什么一开始相处很好的朋友,只要是一向我表
为什么欧美企业对英语口语要求这么高?既然这
根据短文内容从短文后的选项中选出能填入空白
武汉大学选修课推荐
天气热了吃东西的时候是不是就容易犯恶心?
如何做到厂家与商家利益共赢
乔丹Spiz'ike特点
推荐资讯
表示与孝道有关的格言,描写晚霞天空的句子有
单选题下列语句不是全称命题的是A.任何一个实
He intends to apply for permit from the g
“麦穗”有什么寓意?
玻璃棉毡该怎么抽样复试?
在车厢内光滑的水平桌面上放置一个小球,当车
牡丹雏鸟怎么喂养
二零一三的插画是谁画的
10时40分+60是多少?
男朋友朋友去世了一段时间了,跟他父母一直保
阿里巴巴诚信通是什么,诚信通跟淘宝的区别是
襄阳有zipp0打火机专柜吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?