源自《The C Programming Language》P25 p1-23:
编写一个删除C语言程序中所以的注释语句。要正确处理带引号的字符串和字符常量。在C语言中,注释不允许嵌套。
参考代码:
分析:
1, 当输入:int a = 9;/*variant a equal 9时,调用main函数中的while循环中的rcomment函数,在终端的下一行
输出:int a = 9;,当c == '/',d == '*'时,进入in_comment函数,则后面的"variant a equal 9"不输出在终端,
最终光标停在int a = 9;中';'字符后面等待下一次输入(此时仍在执行in_comment函数,并未跳出)。
当再次输入:comment*/end时,继续接着执行in_comment函数中的while循环(因为处理完上次输入后,
并未跳出in_comment函数中的while循环),故不会输入"comment",当读入'*'和'/',in_comment函数
中的while条件不满足了,跳出in_comment,跳回到rcomment中,接着跳回到main中的while循环中,从
输入缓冲区中读入"end",输出到终端的下一行。
疑问:
1, echo_quote函数:if(d == '//') putchar(getchar()); 的作用?