删除C语言程序中所有的注释语句(有疑问)

来源:互联网 发布:网络错误651怎么解决 编辑:程序博客网 时间:2024/05/16 06:12
[cpp] view plain copy
  1. #include <stdio.h>  
  2.   
  3. void rcomment(int c);  
  4. void in_comment();  
  5. void echo_quote(int c);  
  6.   
  7. int main()  
  8. {  
  9.   
  10.     int c, d;  
  11.   
  12.     while((c = getchar()) != EOF)  
  13.         rcomment(c);  
  14.   
  15.     return 0;  
  16. }  
  17.   
  18. void rcomment(int c)     
  19. {  
  20.     int d;  
  21.   
  22.     if(c == '/')  
  23.         if((d = getchar()) == '*')  
  24.             in_comment();  
  25.         else if(d == '/')  
  26.         {  
  27.             //putchar(c);  
  28.             //rcomment(d);  
  29.             fflush(stdin);  
  30.             putchar('/n');  
  31.         }  
  32.         else  
  33.         {  
  34.             putchar(c);  
  35.             putchar(d);  
  36.         }  
  37.     else if(c == '/'' || c == '/"')  
  38.         echo_quote(c);  
  39.     else  
  40.         putchar(c);  
  41. }  
  42.   
  43. void in_comment()   //处理/*...*/注释  
  44. {  
  45.     int c, d;  
  46.   
  47.     c = getchar();  
  48.     d = getchar();  
  49.     while(c != '*' || d != '/')  
  50.     {  
  51.         c = d;  
  52.         d = getchar();  
  53.     }  
  54. }  
  55.   
  56. void echo_quote(int c)   //处理'fajklg'和"fdsjl"情况  
  57.                             //字符',"只是两个字符,这里不要将"fdsjl"  
  58.                         //认为是字符串fdsjl,而是字符串"fdsjl"  
  59. {  
  60.     int d;  
  61.   
  62.     putchar(c);  
  63.     while((d = getchar()) != c)  
  64.     {  
  65.         putchar(d);  
  66.         if(d == '//')  
  67.             putchar(getchar());  
  68.     }  
  69.     putchar(d);  
  70. }  
阅读全文
0 0