去除C代码中的注释,

1. 单行注释//;

2. 多行注释/**/;

3. 单行注释以“\”结尾则下一行也为注释;

4. 字符串中的注释不处理。

说是C语言,但其实所有C语系的都可以,比如Java。

小工具:去除C语言注释

复制代码 代码如下:

#include

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;

}

测试代码

复制代码 代码如下:

#include

#include

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;

}

处理后的代码

复制代码 代码如下:

#include

#include

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;

}

c语言取消注释,实现去除c语言注释的小工具相关推荐

  1. 用C语言写的合并BOM和坐标文件的小工具

    ALLEGRO画PCB的软件生成的坐标文件里面没有原件的参数数值,比如没有电容容量,电阻阻值.如下图: 焊接厂生产的时候希望我在里面加上原件参数.我这边反复看了ALLEGRO设置,都无法在同一个文件输 ...

  2. 实用c语言函数源码,C语言编写简单朗读小工具(有源码)

    原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...

  3. c语言案例朗读工具源码,C语言编写简单朗读小工具(有源码)

    原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...

  4. 利用有穷自动机去除C语言代码行注释(//)以及块注释(/* */)

    一. 程序设计题目与说明 利用有穷自动机去除C语言代码行注释(//)以及块注释(/* */) 该有穷自动机的状态转换图如下: 二. 核心代码(或全部代码) #include<stdio.h> ...

  5. r语言工作路径linux,R语言实用基础知识_工作路径-注释-安装和卸载R包_2019-12-01...

    R语言的实用基础知识有很多,都是我在工作和学习中所整理的,有的是看书整理的,也有的是从网络上的各种博客.各种资源获取的,所以我采用日更的方式进行支持整理和更新,希望能够帮到屏幕前的你! 今天是我日更的 ...

  6. 编译c语言程序时 程序中的注释部分将,C语言程序编译时,程序中的注释部分将 答案:不参加编译,也不会出现在目标程序中...

    相关问题 在普通视图中,需打开"插入"菜单,单击"脚注"或"尾注",打开一注释内容编辑区, 才能查看和编辑注释内容: 视图 中 菜单 脚注 ...

  7. python语言中的注释符_各种语言中的注释符总结

    各种语言中的注释符 c语言 /* 注释内容*/ // 注释内容 Pascal: { 注释内容} Vb: Rem 注释内容 '注释内容 Vbscript: '注释内容 rem 注释内容 Javascri ...

  8. c语言注释换颜色,C语言实现注释转换

    将C语言注释转换成C++注释 #pragma once #pragma warning (disable:4996) typedef enum ConvertState { SUCCESS,//转换成 ...

  9. c语言设计程序注释说明位于,C语言程序设计试题及答案A

    C语言程序设计试题及答案 C语言程序设计 一.选择题(共40分,每小题2分) 1.以下叙述不正确的是( ) A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序 ...

最新文章

  1. easyui datagrid 表格 属性和方法
  2. Android版同步工具豌豆荚实测 电脑给手机按软件 截图
  3. Mini C# Set class
  4. java学习第一课----java中8种基本类型
  5. python中循环结构_python中的循环结构等相关知识
  6. EventBus全面讲解和案例
  7. 小学计算机课教学工作总结,小学六年级信息技术教学工作总结
  8. [转]CString类型的头文件、CString的输出、CString的常用用法
  9. 计算机网络基础知识应用题,计算机网络试题及答案共十套
  10. 可视化数据库监控警报工具 —— Sampler
  11. xshell 运行python脚本
  12. 产业分析:视频云服务行业
  13. img标签引入和背景图片引入雪碧图的使用
  14. 订单系统:订单拆单规则与流程详解
  15. 聊聊C++标准库,准标准库中关于时间的概念和用法
  16. 生成式对抗网络(GAN)原理推导与网络构建思路
  17. 微信小程序太阳落日效果
  18. Cramer悖论:线性代数的萌芽
  19. openLayers6系列理论基础——Layer数据源source篇
  20. Mac 调节鼠标移速

热门文章

  1. websphere 安装时数据源测试遇到的问题。
  2. DC-3靶场实战详解
  3. linux下安装sendEmail Timeout while connecting to smtp.exmail.qq.com:25
  4. Mybatis学习笔记(二)【框架基础搭建】
  5. 众网友吐槽:十大累成狗专业。程序员居榜首!!!
  6. EXCEL提取百分位数
  7. 大型游戏资讯门户网站源码
  8. 微积分 --- 欧拉数e的计算方法(个人学习笔记)
  9. Redis 面霸篇:高频问题横扫核心知识点
  10. 众里寻他千百度,蓦然回首,那人还在写作业(3)