#include<stdio.h>
#include<string.h>
main()
{
char a[11]={"ilovechina"};
char b[6];
int i,j=0;
for(i=0;i<=9;i++)
{
if(i%2==1)
{
b[j]=a[i];
j++;
}
}
puts(b);
}
字符串比实际看上去的长度要多一个字符串结束符。
即定义char a[11]={"ilovechina"};,长度为10,但其实最后还有一个结束符\0,一共占用11个字节的空间。
看楼主的定义应该是理解这一个知识点的,但是最后b并没有赋值结束符,导致最后输出的时候会有问题(因为没有结束符,所以输出的时候并不知道字符串已经结束,因此需要手动添加)
xiexie!!