创建用于删除C预处理器样式中的注释的代码

时间:2017-02-12 11:58:34

标签: c string c-preprocessor

我正在尝试编写一个代码,用于删除给定文件[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;
}

代码似乎没有达到我的预期。有人能帮助我理解我做错了什么吗?

0 个答案:

没有答案