C到C 注釋的轉換

2021-08-04 14:17:11 字數 2192 閱讀 8161

如上圖 利用狀態機的思想來解決c注釋到c++注釋的轉換。(不允許注釋巢狀)

在狀態內處理,狀態間跳轉,根據不同的的事情發生相應的動作,並進行相應的狀態轉換。

程式共有四種狀態 :nulstate(無狀態),cstate(c狀態),cppstate(c++狀態),endstate(結束狀態)。

1.當為無狀態時,遇到特定標記時進行狀態轉換,它有可能保持無狀態,可能進入c狀態,可能進入c++狀態,也可能進入結束狀態。

2.當為cpp狀態時,遇到特定標記時進行狀態轉換,它有可能保持cppstate(c++狀態),可能進入nulstate(無狀態),也可能進入endstate(結束狀態)。

3.當為c狀態時,遇到特定標記時進行狀態轉換,它有可能保持cstate(c狀態),可能進入nulstate(無狀態)。

4.當為結束狀態時,轉換束。

#ifndef __commentconvert_h__

#define __commentconvert_h__

#define _crt_secure_no_warnings 1

#include

#include

typedef

enum state

state;

//無狀態處理

void donulstate(file*pfin, file*pfout,state* state);

//c狀態處理

void docstate(file*pfin, file*pfout, state* state);

//c++狀態處理

void docppstate(file*pfin, file*pfout, state* state);

#endif //__commentconvert_h__

#include"commentconvert.h"

void donulstate(file*pfin, file*pfout,state *state)

break;

case

'*'://如果第二個字元是『*』,進入c狀態

break;

default://如果是其他字元,保持無狀態

break;}}

break;

case eof ://如果到達檔案結尾,進入結束狀態

break;

default://如果第乙個字元是非『/』字元則進行無狀態處理

break;

}}void docppstate(file*pfin, file*pfout, state* state)

break;

case eof://如果到達檔案結尾,進入結束狀態

*state = end_state;

break;

default://如果第乙個字元是非『\n』,說明c++狀態沒有結束,字元進行c++狀態處理

fputc(first, pfout);

break;

}}void docstate(file*pfin, file*pfout, state* state)

break;

default://如果是其他字元,字元進行c狀態處理

break;}}

break;

case

'\n'://進行c狀態的多行注釋處理

fputc(first, pfout);

fputc('/', pfout);

fputc('/', pfout);

break;

default://如果是其他字元,字元進行c狀態處理

break;}}

#include"commentconvert.h"

void commentconvert(file*pfin, file*pfout)

}}void test()

if (pfout == null)

commentconvert(pfin, pfout);

fclose(pfin);

fclose(pfout);

}int main()

**執行結果:

注釋轉換小專案(c注釋 到c 注釋)

首先歡迎閱讀本文,注釋轉換小專案涉及到c語言對檔案的操作,另外這個小專案還應該對各種情況都考慮到。將c語言注釋轉換為c 注釋 1.一般情況 int i 0 2.換行問題 int i 0 int j 0 int i 0 int j 0 3.匹配問題 int i 0 x 4.多行注釋 int i 0 i...

c語言到c 注釋轉換

問題的引入 為什麼需要注釋?問題的解答 1.使用一些注釋符來增加我們程式的可讀性,2.遮蔽掉一些不需要程式。注釋符一般分為兩種 一種是以 開頭,在中間加上注釋內容,並以 結尾的段落注釋符。在 和 之間的即為注釋。另一種是以 開頭,後面加注釋內容的單行注釋符。在 之後的即為注釋。其中 1.c語言的注釋...

注釋轉換 c注釋 c 注釋

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