C 去掉注釋

2021-06-10 06:35:13 字數 1303 閱讀 9756

#include

#include

#include

#include

#include

/*****

*功能:移除c/c++程式**中的注釋

**輸入:指向c/c++程式**的指標

*/void remove_comment(char *buf,size_t size)

if(sq_start == null)

else 

if (len == 2 && *(sq_start+1)== '\\')

sq_start =null;

break;

case '\"':   //雙引號

if (sq_start || lc_start || bc_start)

if (dq_start ==null)

else

dq_start = null;

}break;

case '/':

if (sq_start || dq_start ||lc_start ||bc_start)

c = *(p+1);

if (c=='/')

else if (c=='*') 

else

break;

case '*':

if (sq_start || dq_start || lc_start ||bc_start ==null)

if ( *(p+1) != '/')

p+=2;

memset(bc_start,' ',p-bc_start);

bc_start =null;

break;

case '\n':

if (lc_start ==null)

c=*(p+1);

memset(lc_start,' ',(c == '\r'?(p++ -1) : p++)-lc_start);

lc_start = null;

break;

default:

p++;

break;}}

if (lc_start)

}int main(int argc ,char * argv)

n = read(fd,buf,sizeof(buf));

if (n==-1 || n==0)

remove_comment(buf,n);

*(buf+n) = '\0';

printf(buf);

close(fd);

return 0;

}

注釋轉換 c注釋 c 注釋

本專案基於乙個狀態機的思想,每次處理完成之後通過狀態的裝換繼續處理後邊的內容。另外,利用各類的檔案操作函式,實現將將c風格的注釋裝換成c 風格的注釋的乙個簡單功能。大概如下圖 什麼是狀態機?在本專案中,會用到四種狀態,既空狀態 正常 區 c注釋狀態 c風格注釋區 c 注釋狀態 c 風格注釋區 檔案結...

注釋轉化(C注釋轉為C 注釋)

假如現在有乙個.c的檔案,它裡面有c語言的注釋 c 的注釋 當然也有正常的 了,現在我們想要把裡面的注釋統一一下,將c語言注釋全部轉換為c 的注釋,該怎麼做呢?思路 我們可以這麼想,它裡面無非有四種型別 1.正常 2.c注釋 3.c 注釋 4.檔案結束標誌eof 我們要向把c注釋全部轉化成c 注釋,...

去掉雙斜槓注釋(使用strng函式)

description 將c程式 中的雙斜槓注釋去掉。input 輸入資料中含有一些符合c 語法的 行。需要說明的是,為了方便程式設計,規定雙斜槓注釋內容不含有雙引號,源程式中沒空行。保證每行不超過1000個字元 output 輸出不含有雙斜槓注釋的c 除了注釋 之外,原語句行格式不變。sample...