#include <stdio.h>
#include <stdlib.h>
//删除注释/*......*/部分
void deletecomment(char ch);
void findendcom();
void dealquote(char ch);
int main()
{
char ch;
while((ch=getchar())!=EOF){
deletecomment(ch);
}
return 0;
}
void deletecomment(char ch)
{
if(ch=='/'){
char d;
if((d=getchar())=='*'){
findendcom();
}
else if(d=='/'){
putchar(ch);
deletecomment(d);
}
else{
putchar(ch);
putchar(d);
}
}
else if(ch=='\''||ch=='"')//不要把引号内的注释当作有效注释
//所以不可提前结束引号,正确处理引号内的\'和\"
//如,bgfjd"fgjf/"hjd/*jhif*/fgh",应完整输出
dealquote(ch);
else
putchar(ch);
}
void findendcom()
{
char c,d;
c=getchar();
d=getchar();
while(c!='*'||d!='/'){
c=d;
d=getchar();
}
}
void dealquote(char ch)
{
putchar(ch);
char d;
while((d=getchar())!=ch){
putchar(d);
if(d=='\\'){
putchar(getchar());
}
}
putchar(d);
}
删除注释/*......*/部分
最新推荐文章于 2025-05-14 08:56:21 发布