编写一个去除C语言注释的程序

来源:百度知道 编辑:UC知道 时间:2024/07/03 02:56:41
编写一个程序:将C语言程序中的所有注释都去掉,并将去掉的文件和注释放入一个新的文件中.
编写一个程序:将C语言程序中的所有注释都去掉,并将去掉注释的文件和注释放入一个新的文件中.请给个全程序吧 我是菜鸟 谢谢。

分别做2次处理。
第一次处理 //
第二次处理 /* ..*/ ...

第一次处理 用fgets()
while (!feof(fin)){
if ( fgets(one_line,1023,fin)==NULL) break;
len = strlen(one_line);
for (i=0;i<len-1;i++){
if (one_line[i]=='/' && one_line[i+1]=='/'){
one_line[i] = '\0'; break;
}; }; // for i
if (i>0) fprintf(fout,"%s",one_line);
if (i<len-1) fprintf(fout,"\n");
};
------------------------
第二次处理 用 fgetc()
设初始状态 flag = 0
loop:
读一个字符c1
读下一个字符c2
连续读到的两个字符不是 /* 时, 输出c1,c2赋给c1,再 读下一个字符给c2, (如果c2是EOF则输出c1,程序结束。)直到 连续读到的两个字符是 /*
flag = 1
接下,不输出,只读,直到 连续读到的两个字符是*/
flag = 0
goto loop

这个我不会
不过你用VC++6.0的话
注释会自动生成一个文件

算法:
检查字符:
出现// 或者/*就把这些字符复制并删除到内存

其实,使用visual studio 打开一个源文件,选中所有文字,按快捷键:ctrl+k+u就可以了