当前位置: 代码迷 >> C语言 >> unsigned char数组的有关问题
  详细解决方案

unsigned char数组的有关问题

热度:1982   发布时间:2013-02-26 00:00:00.0
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,但……
  相关解决方案