我正在尝试编写一个代码,用于删除给定文件[C-Style]中的注释。
我为删除评论的函数编写的代码如下所示。我已经在char * copy中传递了源文件内容。
char *remove_comment(char *copy) //if blank file
{
int length = strlen(copy);
int i,j;
for(i=0; i<length; i++)
{
j=i;
if(copy[j++]=='/')
{
if((copy[j]!='\0') && (copy[j]=='/')) //single line comment
{
while((copy[j]!='\0') && ((copy[j]!='\n') || ((copy[j]!='/') && (copy[j+1]!='/'))));
if(copy[j]!='\0') j++; // Safety: INC beyond NULL would give unpredictable results
memmove(copy[i],copy[j],length-j); //replace comments
}
/*
else if((copy[j]!='\0') || (copy[j]=='*')) //multi line comment
{ //later
}
*/
printf("%s",copy);
}
}
return copy;
}
代码似乎没有达到我的预期。有人能帮助我理解我做错了什么吗?