首页 > 代码库 > 删除注释
删除注释
要求:
1. 删除注释语句功能采用动态链接库形式
2. 在功能实现的基础上:
--单元测试要足够充分
--要通过所有的MISRA C的检查
--代码要符合代码规范。
分析:
读取文件 (读取整个文件的大小限定为100M,如果大于了这个值,就不处理,报错)
|
|
分析文件 ()
|
|
处理文件
|
|
写文件
单元测试:
正常输入 、边界输入、非法的输入
#include<stdio.h>
int main()
{
FILE *fp;
char buf[100000],ch,flag2;
int i,flag1=0;
if((fp=fopen("hello.c","r"))==NULL)
{
printf("can‘t open file");
exit(1);
}
buf[0]=fgetc(fp);
i=1;
while((ch=fgetc(fp))!=EOF)
{
buf[i]=ch;
if(buf[i-1]==‘/‘&&ch==‘*‘)
{
flag1=1;
i--;
}
if(flag2==‘*‘&&ch==‘/‘)
{
flag1=0;
i--;
}
if(buf[i-1]==‘/‘&&ch==‘/‘)
{
flag1=1; -
i--;
}
if(flag2==‘/‘&&ch==‘n‘)
{
flag1=0;
i--;
}
flag2=buf[i];
if(flag1==0)
i++;
}
buf[i]=‘\0‘;
fclose(fp);
if((fp=fopen("new.c","w"))==NULL)
{
printf("can‘t open file");
exit(1);
}
fputs(buf,fp);
fclose(fp);
return 0;
}
删除注释