c语言清除注释源代码,删除C语言程序源代码中的注释.doc

/* 删除源代码中的注释(/* ... * /形式) *

* 采用最原始的思路和方法实现 */

#include

#include

int main(int argc, char * argv[])

{

char source[]="#include ///***ab///*cdef***/***\n#include \"stdlib.h\"\n \nint main(int argc, char * argv[])\n{\n\tint a = 9; \n/*laf*/\n\tprintf(\"/*OK*/%d\\n,\", a); \n\treturn 0;\n}"; /*原始代码*/

char target[1024] = {'\0'}; /* 过滤注释后的代码*/

int len = 0;

int i = 0;

int j = 0;

char firstChar;

char secondChar;

char stringSign;

while(source[i++])

len++ ; /* 求source 串的串长*/

printf("%s\n", source); /* 显示原始代码 */

/* 按字符扫描原始代码并处理*/

for(i = 0,j = 0; 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");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值