题目:编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中程序中,注释不允许嵌套。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c = 0;
int pos = 1;
int d = 0;
while((c = getchar()) != EOF)
{
if(c == '/')
{
if((d = getchar()) == '*')
{
in_comment(d);
}
else if(d == '/')
{
in_comment_2(d);
}
else
{
putchar(c);
putchar(d);
}
}
else if(c == '"' || c == '\'')
{
echo_quote(c);
}
else
{
putchar(c);
}
}
}
void in_comment(int c)
{
int i = 0;
int j = 0;
j = getchar();
i = getchar();
while(i != '*' || j != '/')
{
j = i;
i = getchar();
}
}
void in_comment_2(int c)
{
int i = 0;
i = getchar();
while(i != '\n')
{
i = getchar();
}
}
void echo_quote(int c)
{
int i = 0;
putchar(c);
while((i = getchar()) != c)
{
putchar(i);
}
putchar(i);
}