手抄代码1-23

1-23 删除c语言源码中的注释,提示:字符串中的注释不能删,而且注释没有嵌套。

这个代码写的很好,每个函数就是一个独立的块,可以它可用的库与main是持平的。

#include <stdio.h>
void rcomment(int c);
void in_comment(void);
void echo_quote(int c);
main()
{
    int c;
    while((c=getchar()) != EOF)
        rcomment(c);
    return 0;
}

void rcomment(int c)
{
     int d;
     if(c=='/')
         if((d=getchar()) == '*')
             in_comment();
        else if (d == '/') {
            putchar(c);
            rcomment(d);
        }
        else {
            putchar(c);
            putchar(d);
        }
     else if (c=='\''||c=='"') {
         echo_quote(c);
     }
     else {
         putchar(c);
     }
}

void in_comment(void)
{
    int c, d;
    c = getchar();
    d = getchar();
    while (c!='*'||d!='/') {
        c = d;
        d = getchar();
    }
}

void echo_quote(int c)
{
     int d;
     putchar(c);
     while ((d=getchar())!=c) {
         putchar(d);
         if(d=='\\');
         putchar(getchar());
     }
     putchar(d);
}

liunx 工具真的很丰富,,rcomment 用到了递归。

转载于:https://my.oschina.net/dengwo/blog/686028

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值