c语言删掉注释,c语言删除注释
/*
* delete comment in C
*/
#include
#define normal 0
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);
}
書中答案rcomment函數中的
else if (d == ‘/‘) {
putchar(c);
rcomment(d);
} 這個語句看了好久沒沒明白什么意思,測試程序的話,不處理‘//‘注釋,只刪除/*? */之間的,不敢確定是不是答案有問題。
估計這是原本應該刪除//到換行之間的注釋的,若是這樣,這個語句應改為:
else if (d == ‘/‘) {
while(getchar()!=‘\n‘);
}
總結
以上是生活随笔為你收集整理的c语言删掉注释,c语言删除注释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梯度下降法和随机梯度下降法的区别
- 下一篇: frome here on out