删除C语言程序中所以的注释语句(有疑问)

     源自《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()); 的作用?

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值