准备做导言中的最后一个程序了,这个程序的目的是去掉文本中的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();
}
}
阅读(688) | 评论(0) | 转发(0) |