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