问一道C语言问题如下

来源:百度知道 编辑:UC知道 时间:2024/05/15 04:32:46
以下程序的功能;输入一个字符串,然后删除字符串中所有的空格字符。
#include (stdio.h)
#include (string.h)
main()
{ int n=0,i;
char s[80];
gets(s);
i=1; ........................
while(s[i]='\0').....................
{if(s[i]!=32)
s[n++]=s[i];
i++;}
s[i]='\0'; ......................
puts(s);
}

打省咯号的怎么改正?谢谢

#include (stdio.h) //改为<>,不是()。
#include (string.h)//同上。可去掉此头文件,因为没用到。
main() //最好加一个返回类型。void.
{ int n=0,i;
char s[80];
gets(s);
i=1; ........................//改为 i=0;因为从第一个字符开始。
while(s[i]='\0')............//改为s[i]!='\0'.如果没结束,就继续。
{if(s[i]!=32) //最好改为s[i]!=' '。比数字要更可读。
s[n++]=s[i];
i++;}
s[i]='\0'; ..........//改为s[n],其实是在新的字符串中加结束标记了。
puts(s);
}

--------------------
我给出一个完整的,在VC6下测试通过的程序,对照。
#include <stdio.h>
#include <string.h>
void main()
{
int n=0,i;
char s[100];
gets(s);
i=0; //........................
while(s[i]!='\0')//.....................
{
if(s[i]!=' ')
s[n++]=s[i];
i++;
}
s[n]='\0'; //......................
puts(s);
}