预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

/*删除源代码中的注释(/*...*/形式)* *采用最原始的思路和方法实现*/ #include<stdio.h> #include<stdlib.h> intmain(intargc,char*argv[]) { charsource[]="#include<stdio.h>///***ab///*cdef***/***\n#include\"stdlib.h\"\n\nintmain(intargc,char*argv[])\n{\n\tinta=9;\n/*laf*/\n\tprintf(\"/*OK*/%d\\n,\",a);\n\treturn0;\n}";/*原始代码*/ chartarget[1024]={'\0'};/*过滤注释后的代码*/ intlen=0; inti=0; intj=0; charfirstChar; charsecondChar; charstringSign; while(source[i++]) len++;/*求source串的串长*/ printf("%s\n",source);/*显示原始代码*/ /*按字符扫描原始代码并处理*/ for(i=0,j=0;i<len;i++){ firstChar=source[i]; secondChar=source[i+1]; stringSign=source[i];/*字符串常量标识*/ if(stringSign!='\"') if(firstChar!='/')/*复制非注释字符*/ target[j++]=firstChar; else if(secondChar=='*'){/*扫描到连续的/字符和*字符,进入注释*/ i=i+2; while(1){ if((firstChar=source[i])!='*') i++;/*过滤注释字符*/ else if((secondChar=source[i+1])!='/') i++; else break;/*扫描到连续的*字符和/字符注释部分结束*/ }; firstChar=source[++i];/*过滤注释部分的最后的字符/*/ } else target[j++]=firstChar;/*复制单独的/字符后的非注释字符*/ else{ do{ target[j++]=stringSign; stringSign=source[++i]; }while(stringSign!='\"');/*复制字符串*/ target[j++]=stringSign; } } target[j]='\0'; printf("\n\n\n%s\n",target); system("pause"); }