2 u013238409 u013238409 于 2014.11.19 13:03 提问

C语言里用一个空格代替连续出现的多个空格,然后输出,求解!

#include

int main()
{
int c, i, j;
char str[1000];

i = 0;
while ((c = getchar()) != EOF) {
    str[i] = c;
    ++i;
}
str[i] = '\0';
i = j = 0;
while (str[i] != '\0') {
    putchar(str[i]);
    ++i;
    j = i;
    while (str[i] == ' ')
        ++i;
    if (i - j >= 1)
        putchar(str[j]);
}
return 0;

}

6个回答

u011731233
u011731233   2014.11.19 13:08

代码是不是直接copy过来的,头文件没了。用一个char变量记录前一个输入的是不是空格判断输出,加个判断就行了

save4me
save4me   Ds   Rxr 2014.11.19 15:28
lx624909677
lx624909677   Ds   Rxr 2014.11.19 16:01

连续多个空格当做一个?只要判断非空格的前一个字符是否是空格就可以了,这样不会重复

dongtinghong
dongtinghong   2014.11.20 11:39

不需要用if(i-j>=1)吧

zcwme
zcwme   2014.11.20 16:26

#include
int main()
{
int c, i, j;
char str[1000];
i = 0;
while ((c = getchar()) != EOF) {
str[i] = c;
++i;
}
str[i] = '\0';
i = j = 0;
while (str[i] != '\0') {
putchar(str[i]);
while (str[++i] == ' ')
{
j = 1;
}
if (j)
{
putchar(' ');
j = 0;
}

}
return 0;
}

save4me
save4me   Ds   Rxr 2014.12.18 10:30

上次回答的合并连续空格的代码,解决你问题了吗?
上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!