【发布时间】:2019-04-01 21:53:39
【问题描述】:
#include <stdio.h>
int main()
{
int c; /* Present Character */
int old_c; /* Previous Character */
while ((c = getchar()) != EOF) {
if (old_c == ' ' && c != ' ') {
putchar(' ');
putchar(c);
} else if(c != ' ') {
putchar(c);
}
old_c = c;
}
return 0;
}
我真的不明白这段代码是如何工作的。这是 C 编程语言练习 1.9 的解决方案:
练习 1-9:
编写一个程序,将其输入复制到其输出,将一个或多个空格的每个字符串替换为一个空格。
C 编程语言第 2 版,
B. Kernighan 和 D. Ritchie,普伦蒂斯 霍尔,第 20 页。
这是我的问题
例如我输入为输入:Hello World\n
'\n' 不是最后一个字符吗?保存到old_c : old_c = c;
有人可以向我解释如何编写代码,因为我真的很想学习 c 编程语言和编程。 我是个初学者;
【问题讨论】:
-
你能在问题中包含练习文本吗?
-
上面的代码有一个错误,因为
old_c在未初始化时使用。 -
回答部分问题,如果你在终端输入
Hello World\n,\n不会被解释为一个换行符,它会被单独读入,所以最后一个字符只是n。 -
从您的问题中不清楚该程序的输出是什么,以及您期望的输出是什么。也不清楚原来的问题是什么,