如果您无法下载资料,请参考说明:
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");
}
as****16
实名认证
内容提供者
最近下载