程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 代碼-使用C語言1. 讀取一個.C文件,刪除該文件中所有的注釋語句

代碼-使用C語言1. 讀取一個.C文件,刪除該文件中所有的注釋語句

編輯:編程綜合問答
使用C語言1. 讀取一個.C文件,刪除該文件中所有的注釋語句
  1. 讀取一個.C文件,刪除該文件中所有的注釋語句。然後寫入到新的.C文件裡。 要求:
  2. 刪除注釋語句功能采用動態鏈接庫形式
  3. 在功能實現的基礎上: --單元測試要足夠充分 --要通過所有的MISRA C的檢查 --代碼要符合代碼規范。

最佳回答:


#include

int main()

{

FILE *fp,*fp1; 

char str[99]=""; 

int i=0; 

fp=fopen("test.c","r"); //要打開的源文件 

fp1=fopen("new.c","w"); //另存為 

while(fgets(str,99,fp)!=NULL) 

{ 

    for(i=0;i<99;i++) 

    if(str[i]=='/'&&str[i-1]=='/'){str[i-1]='\n';str[i]='\0';break;} 

    fputs(str,fp1); 

} 

fcloseall(); 

return 0; 

}

如果有/* */塊注釋的話,用這個

#include

#include

int main()

{

FILE *fp,*fp1; 

char str[99]="",str1[99]=""; 

int i,j,no=0; 

fp=fopen("test.c","r"); //要打開的源文件 

fp1=fopen("new.c","w"); //另存為 

while(fgets(str,99,fp)!=NULL) 

{ 

    for(i=0;i<99;i++) 

    { 

        if(str[i]=='/'&&str[i-1]=='/') 

        {str[i-1]='\n';str[i]='\0';} 



        if(str[i]=='*'&&str[i-1]=='/') 

        {str[i-1]='\0';no=1;fputs(str,fp1);} 



        if(str[i]=='/'&&str[i-1]=='*') 

        { 

            for(j=0;j<98-i;j++){str[j]=str[i+j+1];} 

            str[j]='\0'; 

            no=0; 

        } 

    } 

    if(no==0)fputs(str,fp1); 

} 

fcloseall(); 

return 0; 

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved