首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

unsigned char数组的有关问题

2013-02-17 
unsigned char数组的问题有一个数组unsigned char str[] 97,97,97,97,98,98,98,98.其中的都是十进制数

unsigned char数组的问题
有一个数组unsigned char str[] = "97,97,97,97,98,98,98,98".其中的都是十进制数字。为什么我讲前四个赋值为一个字符串能打印出aaaa,而我将后四个赋值给一个字符串的时候,能打印出bbbb,但是同时打印出aaaa。为什么这个时候还会打印出aaaa啊?
[解决办法]
赋值给字符串的时候,别忘记在后面加上'\0'结束符。

引用:
有一个数组unsigned char str[] = "97,97,97,97,98,98,98,98".其中的都是十进制数字。为什么我讲前四个赋值为一个字符串能打印出aaaa,而我将后四个赋值给一个字符串的时候,能打印出bbbb,但是同时打印出aaaa。为什么这个时候还会打印出aaaa啊?

[解决办法]
因为
char a[5];
scanf("97,98","%d,%d",&a[0],&a[1]);
会先a[0]=97;a[1]=0;a[2]=0;a[3]=0
再a[1]=98,a[2]=0;a[3]=0;a[4]=0;
?
[解决办法]
未加'\0'的话,结果是不可预料的,它会持续往后找,取决于当时某个随机的'\0'在那里。

引用:
引用:赋值给字符串的时候,别忘记在后面加上'\0'结束符。

引用:有一个数组unsigned char str[] = "97,97,97,97,98,98,98,98".其中的都是十进制数字。为什么我讲前四个赋值为一个字符串能打印出aaaa,而我将后四个赋值给一个字符串的时候,能打印出bbbb,但……

热点排行