zoukankan      html  css  js  c++  java
  • 【C语言】练习1-23

    •  题目来源:《The C programming language》中的习题
    •  练习1-23: 写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中,注释不允许嵌套

      思路:

      注释语句分为两种://和/* */。在代码中,我们需要做的是,删除所有的注释语句。以下分两种情况来分析:

    1. 注释符号为//的时候,首先我们读取字符的时候,我们会按顺序读取,读取第一个字符/,我们需要把这个字符存入tmp中,如果接下来的字符仍然为/,说明这一行都是注释,需要直接跳过而不输出,直到遇到换行。其他情况的时候,则直接原样输出即可。
    2. 注释符号为/*开头的时候,首先,我们同样会按顺序先读取/字符,并存入tmp中,如果下一个字符为*,则说明开始进入了注释中,直到遇到*/结束,而不管是否为换行符。

      C语言代码实现:

    #include<stdio.h>
    
    void main(){
        int c,former,comment;
        former=-1;
        comment=0;
        while((c=getchar())!=EOF){
    
                if(comment==1){        // 注释符类型为//
                    if(c=='
    '){
                        putchar(c);
                        former=-1;
                        comment=0;
                    }
                }else if(comment==2){  // 注释符类型为/* */
                    if(c=='/' && former=='*'){ 
                        former=-1;
                        comment=0;
                    }else{
                        former=c;
                    }
                }else{
                    if(c=='/'){
                        if(former=='/'){      //注释符为//的开始
                            comment=1;    
                        }
                    }else if(c=='*'){
                        if(former=='/'){       //注释符为/* */的开始
                            comment=2;
                        }else{
                            putchar(c);
                        }
                    }else{
                        if(former=='/'){
                            putchar('/');
                        }
                        putchar(c);
                    }
                    former=c;
                }
        
        }
    }
  • 相关阅读:
    shell基础之更改IP
    shell基础之if语句
    shell基础之变量及表达式
    shell基础之shell相关概念
    shell基础之bus实战(if 练习)
    shell基础之pxe批量部署
    shell基础之编译安装nginx
    Razor视图引擎基础语法
    EF三层
    EF简单增删改查
  • 原文地址:https://www.cnblogs.com/ningvsban/p/3776037.html
Copyright © 2011-2022 走看看