楼上几位大哥说的我还不是很明白,我还没搞懂!
#include <stdio.h>
#define NONBLANK 'a'
/*这个定义在这个程序中到底起了什么关键性作用?*/
main()
{
int c, lastc;
lastc = NONBLANK;
/*为什么要让这个常量赋值给这个变量?*/
while((c = getchar()) != EOF)
/*如果输入的字符中不含有EOF,就执行循环体,这我明白*/
if(c != ' ')
/*这句我搞不懂,执行循环体后,
如果(c 不等于 空格)就执行下一句?*/
putchar(c);
/*那如果我输入的字符里带有空格呢?那这个程序就不运行了?*/
}
光上面的程序我运行后,效果是这样的,当我无论输入多少空格,它都无视我的空格,不让我打印空格!
继续下面的,恕小弟愚昧,实在看不懂各位大哥注解!完全读不通!
if(c == ' ')
/*如果(C 等于 空格),就执行下面的如果,是这个意思吗?*/
if(lastc != ' ')
/*如果(lastc 不等于 空格)就执行putchar(c),我觉得奇怪,lastc不会有空格啊,因为上面已经说明了lastc = NONBLANK = 'a'吗?我只看见个A,那里来的空格啊?不解*/
putchar(c);
/*这个程序怎么会有2个putchar(c)?*/
lastc = c;
/*
C变量存储的字符赋值给变量lastc?,lastc = NONBLANK,lastc = c,到底等于什么啊?*/
我写了复杂了点,不知各位理解我的意思否?小弟实在愚昧,请各位详细明了的带我走出困境!谢谢!