`
lc7cl
  • 浏览: 42549 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

删除代码中的注释

    博客分类:
  • C
c 
阅读更多

 

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//#include <io.h>


static unsigned int table[7][7];

void InitTable()
{
    unsigned int i;
	unsigned int j;
    memset(table, 0, sizeof(table));
    for(i=0; i<7; i++)
    {
		for(j=0; j<7; j++)
			if(i == 4 || i==3)
				table[i][j] = 3;
			else if(i==6)
				table[i][j] = 6;  			
			else
				table[i][j] = 0; 
    }
	/* " 1   / 2   * 3  \ 4    \r,\n 6    其他 0*/
    table[0][1] = 1;
    table[1][1] = 0;
    table[0][2] = 2;
    table[2][3] = 3; /*删除*/
    table[3][3] = 4; /*删除*/
    table[4][2] = 0;
	table[4][3] = 4;
    table[0][4] = 5;
    table[5][2] = 0;
    table[5][1] = 0;
	table[2][2] = 6;  /*删除*/
	table[6][6] = 0;	
}

int DelComments(char* f, int len)
{
	//int fsize;
	int cnt;
	char* buff;
	char* p;
    FILE *file;
    char c;
    int start;
	int input;
    char space;
	start = 0;
    space = ' ';
	cnt = 0;

	buff = (char*)malloc(sizeof(char)*1024*1024);
	memset(buff, 0, sizeof(sizeof(char)*1024*1024));
	p = buff;
    file = fopen(f, "r+b");
	//fseek(file, 0, SEEK_END);
	//fsize = ftell(file);
	//fseek(file, 0, SEEK_SET);
    if(file == NULL)
    {
        return -1;
    }
    InitTable();
    while(fread(&c, sizeof(c), 1, file))
    {
		cnt++;
		switch(c)
		{
		case '"':
			input = 1;
			break;
		case '/':
			input = 2 ;
			break;
		case '*':
			input = 3;
			break;
		case '\\':
			input = 4;
			break;
		case '\r':
		case '\n':
			input = 6;
			break;
		default:
			input = 0;
			break;	 
		}
        switch(start)
        {
        case 3:
			if(c=='\r' || c=='\n')
				*p++ = c;
			else 
				*p++ = ' ';
			break;
		case 2:
            if(input == 3 || input == 2)
            {  				
				p--;
				*p++ = ' ';
				*p++ = ' ';	  				
				break;
            }
			else
			{
				*p++ = c;
				break;
			}
		case 4:
			*p++ = ' ';	 
			break;
		case 6:
			if(input == 6)
				*p++ = c;
			else
				*p++ = ' ';
			break;	 
        default:
			*p++ = c; 			
            break;
        }
        start = table[start][input];
    }
	fclose(file);

	file = fopen(f, "w+b");
	if(!file)
		return -1;
	fwrite(buff, cnt, 1, file);
	fclose(file);
	free(buff);
    return 0;
}


int main(int argc, char** argv)
{
    int fCnt;
    int i;
    char* p;
    char* q;
    int len;			    

    char params[MAXPARAMCNT][MAXFILENAMELEN];
    if(argc <= 1 || argv == NULL)
    {
        return -1;
    }
    fCnt = argc - 1;
    memset(params, 0, sizeof(params));
    for(i=1; i<argc; i++)
    {
        DelComments(argv[i], len);
    }

    return 0;
}
分享到:
评论

相关推荐

    删除源代码注释

    在实际应用中,删除源代码注释的工具往往会有以下功能: 1. 支持多种编程语言,因为不同语言的注释格式各异。 2. 保留原始行号和文件结构,以便于调试和回溯。 3. 提供选项来选择是否保留空行,以保持代码格式的...

    申请软著代码整理工具,快速清除代码中注释

    在软件开发过程中,代码注释对于理解和维护源代码至关重要,但在申请软著时,通常需要提交不包含注释的源代码以确保原创性。这款工具的主要功能就是帮助开发者快速、有效地去除代码中的注释部分,使得提交的代码符合...

    DelComment批量删除代码注释程序 1.0绿色免费版

    比所谓的“C类语言源代码注释去除程序 V1.0 RemoveCNote”好用多了。而且不会太多的删错代码。几乎不用修改,而“C类语言源代码注释去除程序”修改过的代码完全不能使用。 Win8会阻止运行,选择仍然运行即可。用不用...

    代码注释删除小工具(java)

    用java编写的代码注释删除小工具,能去文本中掉//和/* */注释。 第一个按钮的功能为去掉文本框1中代码的注释,输出到文本框2. 第二个按钮的功能为批量删除文件中的注释,并输出到当前目录(新文件名为xxx.txt)。但...

    源代码注释删除工具

    在实际应用中,源代码注释删除工具应该谨慎使用,因为它也会影响到代码的维护和团队协作。正常的开发流程中,注释是不可或缺的,因为它有助于团队成员之间的沟通和代码的长期维护。因此,这类工具通常只在特定情况下...

    Qt编写移除C++代码注释源码

    这个"Qt编写移除C++代码注释源码"项目提供了一个用Qt5实现的解决方案,它可以帮助我们快速地自动化这个过程。 Qt是一个跨平台的应用程序开发框架,主要用于C++编程,同时也支持QML。Qt5是其最新版本,引入了许多新...

    删除源程序中的注释

    2. 遗失信息:注释中可能包含了开发者对某些问题的解决方案、历史变更记录等重要信息,一旦删除可能永久丢失。 3. 法律风险:在开源项目中,删除许可证注释可能违反开源协议,引发法律纠纷。 4. 影响团队协作:...

    sourceinsight 代码行注释,去注释代码插件

    本文将围绕"sourceinsight 代码行注释,去注释代码插件"这一主题,详细介绍如何使用自定义宏来实现快速的代码注释和去注释操作。 首先,我们关注的是"代码行注释"。在编程中,注释是必不可少的一部分,它用于解释...

    C/C++代码注释自动删除工具(源代码)

    C/C++代码注释自动删除工具,工程编译之后生成的exe文件,文件执行之后会自动扫描文件所在目录以及子目录中的所有c、cpp、h、inl文件中的注释,并处理注释删除之后造成的空格或者空行,并将原始文件备份成tmp文件。...

    批量删除C和C++注释

    # 删除多行注释,注意要处理多行注释中可能出现的嵌套情况 while True: temp_code = re.sub(r'/\*.*?\*/', '', source_code, flags=re.DOTALL) if temp_code == source_code: break source_code = temp_code ...

    去除源代码注释

    在编程世界中,源代码注释是极其重要的,它们提供了对程序逻辑的解释,帮助开发者理解和维护代码。然而,在某些特定情况下,如编译优化、代码混淆或仅需执行无注释版本时,可能需要去除源代码中的注释。本文将深入...

    小米便签源代码+注释

    【小米便签源代码+注释】是一款专为学习Java编程和理解软件开发流程的开发者提供的资源。这个压缩包包含了小米便签应用的完整源代码,并且每段代码都有详细的注释,使得初学者能够更好地理解和学习代码的实现逻辑。 ...

    使用ultraedit批量删除代码中的注释

    使用ultraedit批量删除代码中的注释,网上找了许多,没有能直接用的,以前没写过正则表达式,废了九牛二虎的力气,总算是写出来了,呵呵~分享一下!

    删除VB注释工具

    标题中的“删除VB注释工具”指的是一个专门用于去除Visual Basic (VB)代码中的注释的软件工具。在编程过程中,注释是程序员为了增加代码可读性而添加的解释性文字,但在某些情况下,例如代码混淆、版本更新或者只...

    能够去除代码中的注释的软件,C、C++、汇编语言均支持,自动识别汇编与C,能够批量添加。

    本软件主要用于代码保密,即使是被他人获取了无注释源码也难以理解代码...能批量删除代码中的注释,C、C++、汇编语言均支持,自动识别汇编与C,能够批量添加,处理速度快。 软件直接处理目标文件,使用前请做好备份。

    使用python脚本删除java文件中的注释

    使用python脚本快速删除java文件中的注释

    批量删除注释的小工具

    ● 本软件能批量删除代码中的注释。自动识别C代码和汇编代码。 ● 支持扩展名: *.c, *.cpp, *.h, *.asm, *.dt, *.inc ● 前三种按照C语言规范进行处理,后三种按汇编语言规范进行处理 ● 支持子目录,全自动处理...

    删除C语言注释的小工具

    为此,出现了一种专门的小工具——“删除C语言注释的小工具”,它可以高效地从C语言源代码中移除注释,保留可执行代码部分。 该小工具包含以下几个关键文件: 1. **DLCMNT Instruction.txt**:这是操作说明文档,...

    完整的代码注释删除程序

    一个简单的小软件用于C++的代码的注释的删除,界面做的比较难看,大家别介意。

Global site tag (gtag.js) - Google Analytics