Chinaunix首页 | 论坛 | 博客
  • 博客访问: 429062
  • 博文数量: 71
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 1246
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-23 14:46
个人简介

linux --- 一切皆文件

文章分类

全部博文(71)

文章存档

2021年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(11)

2015年(1)

2014年(2)

2013年(33)

2012年(10)

分类: C/C++

2013-05-18 00:02:31

准备做导言中的最后一个程序了,这个程序的目的是去掉文本中的C语言注释。采用递归。
学习递归不要考虑递归在压栈入栈的顺序,这样永远想不明白递归。我们只要了解清楚场景逻辑就行。

#include

void rcomment(int c);
void in_comment(void);

int main(void)
{
    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
        putchar(c);
}

void in_comment(void)
{
    int c,d;
    c = getchar();
    d = getchar();

    while(c != '*' || d != '/'){
        c = d;
        d = getchar();
    }
}

阅读(654) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~