哪位c语言大神能说说我这程序哪错了,谢谢啦!

哪位c语言大神能说说我这程序哪错了,谢谢啦!/*编写程序,过滤多余的空格,一个句子中也许有多个连续空格,
过滤掉多余的空格,只留下一个空格.
输入:一行,一个字符串(长度不超过200),句子的头和尾都没有空格.
输出:过滤之后的句子.*/
#include<stdio.h>
int main()
{
char a[200],b[200];
int i=0,j=0;
gets(a);
while(a[i]=='\0')
{
if(a[i]==' '&&a[i-1]==' ') i++;
else
b[j++]=a[i++];
}
printf("%s\n",b);
return 0;
}

#include<stdio.h>
int main()
{
    char a[200],b[200];
    int i=0,j=0;
    gets(a);
    while(a[i]!='\0')
    {
        if(a[i]==' '&&a[i+1]==' ') i++;
        else
            b[j++]=a[i++];
    }
    b[j]=a[i];
    printf("%s\n",b);
    return 0;
}

追问

最后那个b[j]=a[i]是什么意思呀

那步改为b[j]='\0'行不

追答

可以,是一样的。

追问

还有那个条件语句那里a[i+1]也可以写成a[i-1]也可以吧

追答

不可以。

追问

为啥呢

追答

i从0开始,i为0则i-1越界。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答