gpt4 book ai didi

c - 删除尾随空白

转载 作者:行者123 更新时间:2023-11-30 14:24:13 25 4
gpt4 key购买 nike

我正在研究 k&r,并且正在研究问题 1-18。编写一个程序,从每行输入中删除尾随空格和制表符,并删除整个空白行。我的想法是读取每一行并计算空格数。如果是第一个空白,则使用 putchar 打印它。如果有第二个空格,则不打印它并将空格重置为 0。然后继续通读并删除空格。

目前我只能打印它读取的任何其他内容,因为我正在尝试一点一点地做。运行该程序后,我会在终端中看到其中两个 ��。我认为我在错误地嵌套 if 语句或 else 语句时遇到问题,我之前在那里遇到了一些错误。我是否正在讨论以正确方式删除空白的逻辑?如果有人能指出我修复代码的正确方向,我将不胜感激。

#include <stdio.h>

main()
{
int c, i, spaces; /*c for input, i for counting*/

i = 0;
c = 0;
spaces = 0;
while ((c = getchar())!=EOF)
if(spaces = 0 && c == ' ')
++spaces;
putchar(c);
if(spaces >= 1)
spaces = 0;
else {
putchar(c);
}


}

最佳答案

尝试:

if(spaces == 0 && c == ' ')
{
++spaces;
putchar(c);
if(spaces >= 1)
spaces = 0;
}
else
{
putchar(c);
}

您的缩进表明您希望 else 分支与第一个 if 一起使用,但现在它与内部 if 相对应。

此外,spaces = 0 是赋值,spaces == 0 是比较。

关于c - 删除尾随空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com