c语言取消注释,实现去除c语言注释的小工具
去除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语言注释的小工具相关推荐
- 用C语言写的合并BOM和坐标文件的小工具
ALLEGRO画PCB的软件生成的坐标文件里面没有原件的参数数值,比如没有电容容量,电阻阻值.如下图: 焊接厂生产的时候希望我在里面加上原件参数.我这边反复看了ALLEGRO设置,都无法在同一个文件输 ...
- 实用c语言函数源码,C语言编写简单朗读小工具(有源码)
原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...
- c语言案例朗读工具源码,C语言编写简单朗读小工具(有源码)
原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...
- 利用有穷自动机去除C语言代码行注释(//)以及块注释(/* */)
一. 程序设计题目与说明 利用有穷自动机去除C语言代码行注释(//)以及块注释(/* */) 该有穷自动机的状态转换图如下: 二. 核心代码(或全部代码) #include<stdio.h> ...
- r语言工作路径linux,R语言实用基础知识_工作路径-注释-安装和卸载R包_2019-12-01...
R语言的实用基础知识有很多,都是我在工作和学习中所整理的,有的是看书整理的,也有的是从网络上的各种博客.各种资源获取的,所以我采用日更的方式进行支持整理和更新,希望能够帮到屏幕前的你! 今天是我日更的 ...
- 编译c语言程序时 程序中的注释部分将,C语言程序编译时,程序中的注释部分将 答案:不参加编译,也不会出现在目标程序中...
相关问题 在普通视图中,需打开"插入"菜单,单击"脚注"或"尾注",打开一注释内容编辑区, 才能查看和编辑注释内容: 视图 中 菜单 脚注 ...
- python语言中的注释符_各种语言中的注释符总结
各种语言中的注释符 c语言 /* 注释内容*/ // 注释内容 Pascal: { 注释内容} Vb: Rem 注释内容 '注释内容 Vbscript: '注释内容 rem 注释内容 Javascri ...
- c语言注释换颜色,C语言实现注释转换
将C语言注释转换成C++注释 #pragma once #pragma warning (disable:4996) typedef enum ConvertState { SUCCESS,//转换成 ...
- c语言设计程序注释说明位于,C语言程序设计试题及答案A
C语言程序设计试题及答案 C语言程序设计 一.选择题(共40分,每小题2分) 1.以下叙述不正确的是( ) A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序 ...
最新文章
- easyui datagrid 表格 属性和方法
- Android版同步工具豌豆荚实测 电脑给手机按软件 截图
- Mini C# Set class
- java学习第一课----java中8种基本类型
- python中循环结构_python中的循环结构等相关知识
- EventBus全面讲解和案例
- 小学计算机课教学工作总结,小学六年级信息技术教学工作总结
- [转]CString类型的头文件、CString的输出、CString的常用用法
- 计算机网络基础知识应用题,计算机网络试题及答案共十套
- 可视化数据库监控警报工具 —— Sampler
- xshell 运行python脚本
- 产业分析:视频云服务行业
- img标签引入和背景图片引入雪碧图的使用
- 订单系统:订单拆单规则与流程详解
- 聊聊C++标准库,准标准库中关于时间的概念和用法
- 生成式对抗网络(GAN)原理推导与网络构建思路
- 微信小程序太阳落日效果
- Cramer悖论:线性代数的萌芽
- openLayers6系列理论基础——Layer数据源source篇
- Mac 调节鼠标移速