#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...