C/C++ Comment Remover 0 By DaNmarner Released

C语言注释快速清除工具指南 C语言作为编程语言的经典代表,其注释方式与其他编程语言类似,主要用于增强代码的可读性和可维护性。注释不会被编译器编译,因此对程序的性能没有直接影响。通常注释分为单行注释和多行注释两种形式,分别用//和/* */表示。在项目开发过程中,合理地使用注释不仅能帮助开发者快速理解代码逻辑,还可以在日后维护代码时提供便利。// 单行注释示例int a = 5;// 这是一个整数变量a,并赋值为5/*多行注释示例这是一个多行注释块它经常被用来解释代码段或函数的作用*/// 函数实现代码。 阅读详情

记得《The C Programming Language》写有一道练习就是写一个去掉注释的程序,今天把它重写了一遍,发现好简单啊。这个小程序是我在cmd下面用vim+gcc+gdb敲出来的算是热热手。

我把它叫做C/C++ Comments Remover ,这个版本是0。实现了删除/**/和//两种注释的基本功能。

用法是:ccr 源文件.c [目标文件.c]

如果没有目标文件,就产生一个 源文件_CCRed.c的输出文件。

这个CCR00.zip里有代码和可执行程序 

代码如下:

 

/*
 * C/C++ CommentRemover 0 by DaNmarner      
 * DaNmarner@gmail.com Http://blog.youkuaiyun.com/DaNmarner                
 * Just basiclly remove the comments      
 * 10/27/2006 
 
*/
                          
#include
< stdio.h >
#include
< string .h >
#include
< stdlib.h >
#define  DEBUG_

void  do_quote( void );
int  rcomment( void );
void  showhelp( void );

FILE 
* src_f, * dest_f;

int  main( int  argc, char   * argv[])
{
    
char dest[256];
    
int rmn=0;
    
char c1;

    
if (argc!=2 && argc!=3) {
        showhelp();
        
return 0;
    }


    
if((src_f=fopen(argv[1],"r"))==NULL){
        printf(
"Error opening file %s ",argv[1]);
        
return 0;
    }

    
if(3==argc) strcpy(dest,argv[2]);
    
else {
        strcpy(dest,argv[
1]);
        strcpy(strrchr(dest,
'.'),"_CCRed");
        strcat(dest,strrchr(argv[
1],'.'));
    }

    
if((dest_f=fopen(dest,"w"))==NULL){
        printf(
"Error creating file %s ",dest);
        
return 0;
    }

    
#ifdef DEBUG
    dest_f
=stdout;
#endif
    
while((c1=fgetc(src_f))!=EOF){
        
if(c1=='/') 
            rmn
+=rcomment()?1:0;
        
else if(c1=='"') do_quote();
        
else if(c1=='/'){
            fputc(c1,dest_f);
            
if((c1=fgetc(src_f))!=EOF)
                fputc(c1,dest_f);
        }
else fputc(c1,dest_f);
    }

    printf((rmn
==0)?" No C/C++ comment exists, ":
            
" Successfully removed %d commments! ",rmn);
    printf(
"Please check output file %s ",dest);
    
return 0;
}

void  showhelp( void )
{
    puts(
" C/C++ Comment Remover by DaNmarner 2006.11");
    puts(
"Http://blog.youkuaiyun.com/DaNmanrer DaNmarner@gmail.com ");
    puts(
" Function: Remove Comments of C/C++ sytle from source file.");
    puts(
" Useage: ccr SourceFile [Destination] ");
}


int  rcomment( void )
{
    
int c,itis=1;
    
if((c=fgetc(src_f))==EOF) exit(0);
    
else 
        
if(c=='/') 
            
while((c=fgetc(src_f))!=' ' && c!=EOF);
        
else if(c=='*') {
            
int in_comment=1;
            
while(in_comment){
                c
=fgetc(src_f);
                
if (c==EOF) exit(0);
                
else if (c=='*')
                    
if((c=fgetc(src_f))=='/')
                        in_comment
=0;
                    
else if(c==EOF) exit(0);
            }

        }
else{ 
            fputc(
'/',dest_f);
            fputc(c,dest_f);
            itis
=0;
        }

    
return itis;
}


void  do_quote( void )
{
    
int c,in_quote=1;
    fputc(
'"',dest_f);
    
while(in_quote)
        
if((c=fgetc(src_f))==EOF) exit(0);
        
else{
            
if(c=='/'){
                fputc(
'/',dest_f);
                fputc(fgetc(src_f),dest_f);
            }
 else if(c=='"'){
                fputc(c,dest_f);
                in_quote
=0;
            }
else fputc(c,dest_f);
        }

}

CommentRemover:Java源代码注释卸妆-java source code 评论删除 CommentRemover是Java:trade_mark:7及更高版本的源代码注释删除库。 它还支持JavaScript,HTML,CSS,Properties,JSP和XML注释。 CommentRemover不依赖于任何库,可以将其作为独立的.jar轻松地添加到您的类路径中。 要求 包含CommentRemover的项目至少需要针对Java 1.7。 请增加您的堆栈大小至40m。 VM选项命令为:-Xss40m(如果需要增加)-Xss {size} m 安装 玛文 在pom.xml ,必须为CommentRemover添加存储库和依赖项。 添加依赖项后,请运行mvn clean install命令并确保已完成maven清理和安装过程。 < repository> < id>jitpack.io</ id> < url>https://jitpack.io</ url 立即下载

相关推荐

Comment-Remover:从程序中删除注释的程序

评论删除 从程序中删除注释的程序。 过程: 首先,程序从您选择的文件中读取。 然后,它检查是否有注释,并在检测到注释时停止编写。 它取代了替换文件,而是写入了一个新文件,因此您的注释得以保存。 用例: 节省注释繁重项目的文件空间。 通过删除某人的程序上的注释来恶作剧,但仍保留他们的注释。

超好用的 Visual Studio 批量删除代码注释扩展组件 Comment Remover

使用 VisualStudio 的扩展组件:Comment Remover 完成代码注释清理工作。

syzcyyx的博客 2971

去掉java源码注释-CommentRemover:用于从提供的Java源代码中删除注释的源代码

去掉java源码注释

一个自动剔除COMMENT的C++程序

今天突然有人问我有没有写过自动去除标准C++源文件COMMENT 的程序.这让我一下想起当初面微软的时候现场写的1个程序,当初考虑的实在太不周全,导致直接被BS.如今我可以从容的写这个程序,不过在写完这个程序突然发现1个问题.原来这个貌似简单的程序有这么多的陷阱.1.COMMENT 有两种形式"//","/*...*/".对于"//"情况固然简单因为只要单行处理即可.但是碰到"/*"情

hevvy的专栏 700

javatools源码-comment-remover:rcom-从源代码文件中删除C/C++/Java注释和文档的工具

java工具源码通讯 从源代码文件中删除注释和文档的工具 它可以在C,C ++和Java上正式使用。 它可能也适用于具有相同注释类型的任何语言。 rcom会对原始文​​件进行备份,该原始文件具有相同的名称并附加了字符“〜”。 安装 make install 它默认安装在/ usr / local中 例子 要查看所有选项,请键入rcom --help 删除所有类型的评论 rcom -ac file.c file2.c file3.c 仅删除Javadoc注释 rcom -j java main.java 删除块注释并将其替换为空行 rcom -be c++ file.cpp 使用I / O重定向删除内联注释 rcom -i java < file.java 笔记 带有三字母组合的文件?? /和??' 可能会失败,因为rcom不会用等号替换三部曲。 执照 GNU通用公共许可证v3

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文针对三电平维也纳(VIENNA)整流器在中大功率应用中面临的直流侧中点电位不平衡问题,提出一种基于电容电压差值补偿的主动均衡控制策略。研究以电压电流双闭环PI控制为基础,在电压外环中引入上下电容电压差值作为反馈信号,结合空间矢量脉宽调制(SVPWM)技术,利用冗余小矢量的时间分配自由度实现对中点电位的闭环调节。通过MATLAB/Simulink搭建仿真模型,在800 V直流母线电压、20 kHz开关频率、10 kW负载功率等工况下进行验证。结果表明,该方法不仅能够有效稳定直流母线电压,还可显著抑制中点电位偏差,使其维持在极小范围内,均衡效果远优于未投入补偿的情况,同时保持较低的输入电流总谐波畸变率(THD)。该方案实现了“电压稳定—电流低谐波—中点均衡”三者的协同优化,无需增加额外硬件,具有良好的实用性与工程推广价值。; 适合人群:具备电力电子与电力传动基础知识,从事新能源发电、电动汽车充电、工业电源等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:①掌握三电平VIENNA整流器的工作原理与中点电位波动的成因;②学习双闭环PI控制的设计与参数整定方法;③理解并应用基于SVPWM冗余矢量的中点电位主动平衡策略;④开展类似拓扑的仿真建模与控制算法研究。; 阅读建议:此文理论推导与仿真验证结合紧密,建议读者在理解控制原理的基础上,动手复现Simulink仿真模型,重点关注SVPWM模块中冗余矢量时间分配的实现细节,并尝试调整系统参数以观察控制效果的变化,从而深化对中点平衡能力边界的认识。

【LeetCode 算法】Remove Comments 删除注释-模拟

字符串/* 表示一个块注释,它表示直到下一个(非重叠)出现的*/之间的所有字符都应该被忽略。(阅读顺序为从左到右)非重叠是指,字符串/*/并没有结束块注释,因为注释的结尾与开头相重叠。我们保证每一个块注释最终都会被闭合, 所以在行或块注释之外的/*总是开始新的注释。,那么字符要么在注释内,要么不在注释内。字符串// 表示行注释,表示//和其右侧的其余字符应该被忽略。同样,如果字符串/*出现在行或块注释中也会被忽略。在 C++ 中有两种注释风格,行内注释和块注释。如果字符串//出现在块注释中会被忽略。

Cui's Blog 636

飞书+扣子+DeepSeek三件套:5分钟搞定公众号文章批量改写(附完整配置截图)

本文详细介绍了如何利用飞书、扣子和DeepSeek三款工具,无需编程即可搭建一个高效的公众号文章批量改写自动化工作流。通过飞书多维表格管理链接与成果,扣子平台串联整个流程,并调用DeepSeek智能体进行内容润色与改写,实现从内容抓取到智能处理的完整自动化,大幅提升新媒体运营效率。

python9snake的博客 210

代码去除注释Remove Comments、合并行Join Lines、代码压缩Minify等vscode功能

代码去除注释Remove Comments、合并行Join Lines、代码压缩minify等vscode功能

wzp20092009的博客 2289

VC Spyglass CDC实战:如何快速定位和解决重汇聚问题(附详细调试步骤)

本文深入探讨了在SoC设计中利用VC Spyglass进行CDC验证时,如何高效定位和解决棘手的重汇聚问题。通过实战演练,详细解析了重汇聚的本质、VC Spyglass的检测逻辑,并提供了从报告筛选、GUI原理图分析到制定设计修复或约束豁免方案的全套调试步骤,帮助工程师快速攻克这一常见验证难题。

weixin_29219539的博客 755

Shell数学计算(算术运算,加减乘除运算)

声明: 本篇博客的学习途径主要为以下网站和课堂讲解,发博客目的仅为学习使用,在该博客的基础上做了一定程序的简略和修改。 参考博客 : 原文链接:http://c.biancheng.net/shell/ Shell数学计算Shell数学计算数学计算命令对整数进行数学运算: (()) / let / $[] /exprShell (())Shell let命令bc命令:一款数学计算器在 Shell 中使用 bc 计算器 Shell数学计算 默认情况下,Shell 不会直接进行算术运算,而是把+两边的数据(数

AKUANer的博客 2万+

分享:Comment Remover 0003 发布

Comment Remover 0003 发布 http://www.oschina.net/news/36444/comment-remover-0003

weixin_34302561的博客 92

映泰TB250-BTC主板魔改BIOS支持8/9代CPU实战与开机故障排查

BIOS(基本输入输出系统)是计算机硬件与操作系统之间的桥梁,负责初始化硬件和提供运行时服务。其工作原理是通过存储在主板芯片中的固件程序,在上电自检(POST)阶段完成对CPU、内存等关键组件的检测与配置。魔改BIOS的技术价值在于突破硬件限制,通过修改微码和电源管理模块,让旧平台支持新处理器,从而以极低成本实现性能跃升,在预算有限或追求极致性价比的DIY、办公和软路由等应用场景中极具吸引力。本文以映泰TB250-BTC矿板为例,详细解析了通过软刷方式刷入魔改BIOS,并重点解决了刷写后常见的“开机风扇转一

weixin_29164185的博客 409

利用JavaParser去除java文件中的注释

利用JavaParser去除java文件中的注释 个人博客:记录一下在项目实施过程中的一些点 情景回顾 之前项目有个需求,就是去掉.java文件中的所有注释,常用的方法是用正则匹配。然而在网络上查找到的正则或多或少都有一些问题,无法匹配到所有的情况。或者说,由于写.java文件的人的不规范(各种奇葩的问题),导致正则覆盖不全。所以正则方法不靠谱,或者说,存在一定的限制。 新的想法 后来想到利用AS...

weixin_37821353的博客 3128

【FPGA】Verilog代码实现温湿度传感器DHT11

#今天也是咸鱼的一天~ 因为参加Robei 杯 是要做一个机器人,先不说这个机器人具体怎么机器法,但是和外界互通的传感器肯定少不了,通过获取外界环境数据,进行处理,然后做出各种各样的功能。 先来讲个简单的模块,温湿度传感器DHT11。 DHT11介绍 DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器。它具有超小体积、极低功耗的特点。它使用单根总线与单片机进行双向的串行数据传输,信号传...

Ninquelote的博客 9163

C#实现每日定时执行制定程序(附完整源码)

C#实现每日定时执行制定程序(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 867

美国众神第七章

第七章印度诸神的所谓“永生”非常独特,不同于其他神祇。他们既会诞生,也会死亡,会经历凡人的大多数苦恼。他们常常只在一些细枝末节方 面不同于凡人。神与魔的差别更加微不足道。尽管如此,在印度人看来,神仍旧截然不同于凡人。他们是一种崇高的象征,而凡人的生活无论多么伟大,都绝不可能 达到这样的高度。他们的种种俗世特性只是为我们上演的一出戏。在戏中,透过他们的神明面具,我们看到的是我们自己的脸。——温迪·多

Dark White Polyphony 深白复调 7764

国科大人工智能原理与算法-2024-第一次作业-雷震老师

1. 反射行动(比如从热炉子上缩回你的手)是理性的吗?它们是智能的吗? 2. 以下的计算机系统在何种程度上是人工智能的实例: - 超市条码扫描器 - 网络搜索引擎 - 语音激活的电话菜单 - 对网络状态动态响应的网络路由算法 3. 为什么进化会倾向于导致行为合理的系统?设计这样的系统想达到的目标是什么?

MatsumotoChrikk 2930

学习计划

    最近一直在考虑以后学什么样的技术,如果是(极有可能是)编程那么到底应该学哪几门语言。因为精通一门语言绝对不是编程的终点。今天看到了一篇很系统的各种语言的对比,遂找到了一点点思路。1-PASCAL    已经算学过了,不过学的时候没人告诉我指针的重要性,所以我一点都没看懂。现在不光指针,就连一般的语法也忘的差不多了。勉勉强强能读懂代码而已了。当时自学它是为了信息学奥赛,不过看来没有机会参加了

Dark White Polyphony 深白复调 1173

深度强化学习 | 基于DQN实现Flappy Bird游戏与分析

在Flappy Bird中,玩家需要通过控制小鸟安全穿过随机长度的水管来得分。本文基于深度Q网络DQN来实现Flappy Bird游戏的自主探索与学习

FRIGIDWINTER的博客 5914

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

优快云博客变形小技巧之一

优快云博客变形小技巧之一By DaNmarner  http://blog.youkuaiyun.com/DaNmarner  DaNmarner@gmail.com欢迎转载,请注明作者和出处!        大量程序员和IT组成的用户群体是优快云博客吸引人们眼球的传统招牌。而最近从后台到稳定性的进步是大家有目共睹的,从不断的更新通告不难看出优快云博客拥有一个勤奋的开发团队——我想这是很多人经历过痛苦煎

Dark White Polyphony 深白复调 1227

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

vim/neovim VS emacs主观感受

程序员圈子里非常经典的一句话:中文通常翻译为:Vim 是编辑器之神,Emacs 是神的编辑器。也有一种更贴切的表达:Vim 是神级编辑器,Emacs 是神仙用的编辑器。

lxyoucan的博客 253

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

DSH (DeepSeek Harness) Windows 升级安装指南20261107

注意:如果在普通窗口执行 nvm 提示找不到命令,或执行 nvm use 提示 Access is denied,请务必关闭当前窗口,重新打开一个管理员CMD 执行上述完整路径命令。找到 .credentials.yaml,将其重命名为 .credentials.yaml.bak(备份并使其失效)。Node.js Storage Location:可改到非系统盘(如 D:\dev\nvm,避免路径含空格或中文)。打开文件资源管理器,进入 C:\Users<你的用户名>.dsh\。

fengye207161的博客 222

linux下vim的基本操作--24个操作指令

本文系统讲解vim常用光标移动、文本编辑与视图操作技巧。通过g(global)实现行跳转(如gg到顶,G到底,nG到第n行),hjkl控制方向,^和$定位行首行末,w/b按单词移动。文本操作包括yy复制、dd删除、p粘贴、u/Ctrl+r撤销重做。x删后,X删前,r替换字符。分屏用vs或ctrl+w切换。指令执行需加!,如!gcc编译。附配置参考,助快速上手。

mewowaBc的博客 268

TanStack Router 更新构建工具链:Node.js 兼容性、路由分割与前端工程实践

本文分析了前端路由框架升级带来的隐性风险,以 TanStack Router 2026 年更新为例,揭示现代路由系统深度参与构建流程的特性。文章指出,依赖升级不仅影响运行时行为,更可能改变代码分割、模块加载与构建输出。重点讨论了 Node.js 版本兼容性(要求 ^20.19.0 或 >=22.12.0)、Vite 5 不再支持、esbuild 自动分割配置的显式报错等变化,并强调“构建成功”不等于“优化生效”。通过实操示例,建议开发者通过 engines 字段、CI 检查和环境一致性管理,将路由、构建工具

weixin_47502228的博客 853

【Linux】环境开发工具(vim,gcc,g++,Makefile)

本文系统介绍了Linux环境下C/C++开发的三大核心工具:Vim编辑器配置(基于vimplus实现IDE化)、GCC/G++编译流程(预处理、编译、汇编、链接及静态/动态库区别)与Makefile自动化构建。通过vimplus一键安装实现vim功能增强,掌握vim三模式操作;理解gcc/g++四阶段编译原理;利用Makefile实现依赖管理与自动化编译,提升开发效率。内容涵盖安装配置、使用技巧与工程实践,适用于Ubuntu/CentOS环境下的高效编程。

2502_91877193的博客 374
上一篇: Essential C++来了
下一篇: SQL注入天书
DaNmarner
博客等级 码龄21年 27粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值