删除字符串中空格问题(第一个字母意外变成空格)
//删除在字符串中所有空格int main(void)
{
int i,j;
char str[16]="a abc abc daf";//依次一个空格,2个空格,2个空格
for(i=0;str[i] != '\0';i++)
{
if(str[i]==' ')//找到有空格的位置
{
for(j=i+1;str[i] != '\0';j++)
{
if(str[j]!=' ')//从有空格的位置往后找到第一个有字母的位置
{
str[i]=str[j];//把有字母的值赋到原先空格的位置
str[j]=' ';//把原先的有数字的位置值赋值为空格
break;
}
}
}
printf("%2c,%2d",str[0],i);
}
puts(str);
}
为什么在i为16的时候str[0]变成了空格?为什么字符数组会溢出,字符串末尾不是有默认结束符吗?