• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 实现去除c语言注释的小工具

实现去除c语言注释的小工具

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c语言注释,c语言注释格式,c语言注释符,c语言注释快捷键,c语言中注释等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

去除C代码中的注释,
1. 单行注释//;
2. 多行注释/**/;
3. 单行注释以“\”结尾则下一行也为注释;
4. 字符串中的注释不处理。
说是C语言,但其实所有C语系的都可以,比如Java。


小工具:去除C语言注释 

int main(int argc, char* argv[]) {
  enum {
    literal,
    single,
    multiple,
    string
  } mode = literal;
  char last = 0, current;

  while ((current = getchar()) != EOF) {
    switch (mode) {
    case single: {
      if (last != '\\' && (current == '\n' || current == '\r')) {
        putchar(current);
        current = 0;
        mode = literal;
      }
    } break;
    case multiple: {
      if (last == '*' && current == '/') {
        current = 0;
        mode = literal;
      }
    } break;
    case string: {
      if (last == '\\') {
        putchar(last);
        putchar(current);
      } else if (current != '\\') {
        putchar(current);
        if (current == '"') {
          mode = literal;
        }
      }
    } break;
    default: {
      if (last == '/') {
        if (current == '/') {
          mode = single;
        } else if (current == '*') {
          mode = multiple;
        } else {
          putchar(last);
          putchar(current);
        }
      } else if (current != '/') {
        putchar(current);
        if (current == '"') {
          mode = string;
        }
      }
    } break;
    }
    last = current;
  }

  return 0;
}
</div>

测试代码

int main (int argc, char *argv[])
{
// not show\
not show\
not show
// not show
/* not show */
    int is; // not show
    int/* not show */ ms; /* not show */
    double ds; // not show\
    not show\
    not show
    double dm; /* ...
    not show
    not show */ float fs; /**
                           * now show
                           */
    float/**/ fm;
    char cs[] = "aaa // /***/";
    char cm1[] = /* not show */"hello*/";
    char cm2[] = "/*redraiment"/* not show */;
    /* printf("/////"); */
    return EXIT_SUCCESS;
}
</div>

处理后的代码

int main (int argc, char *argv[])
{

 

    int is;
    int ms;
    double ds;
    double dm;  float fs;
    float fm;
    char cs[] = "aaa // /***/";
    char cm1[] = "hello*/";
    char cm2[] = "/*redraiment";

    return EXIT_SUCCESS;
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 实现去除c语言注释的小工具

相关文章

  • 2017-05-28怎么实现类的成员函数作为回调函数
  • 2017-05-28C语言入门之指针用法教程
  • 2017-05-28C++时间戳转换成日期时间的步骤和示例代码
  • 2017-05-28C++中string的模拟实现
  • 2017-05-28C++常用的#include头文件总结
  • 2017-05-28简要解读C++的动态和静态关联以及虚析构函数
  • 2017-05-28C++实现第K顺序统计量的求解方法
  • 2017-05-28C语言 基本语法示例讲解
  • 2017-05-28Dijkstra最短路径算法实现代码
  • 2017-05-28C++中指向对象的常指针与指向常对象的指针详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 判断指定的进程或程序是否存在方法小结(vc等)
    • c语言 数据结构实现之字符串
    • C++自定义函数判断某年某月某日是这一年中第几天
    • C++实现在文本中找出某个单词的位置信息
    • C++获得文件状态信息的方法
    • Cocos2d-x UI开发之菜单类使用实例
    • VC++实现通过API来查看程序错误信息的方法
    • 详解C++编程中的嵌套类的声明与其中的函数使用
    • 举例解析设计模式中的工厂方法模式在C++编程中的运用
    • 深入理解strcpy与memcpy的区别

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有