c語言專案 注釋轉換

2021-07-12 01:56:01 字數 2603 閱讀 1236

題目要求:

要將全部的c語言風格的注釋轉換為c++風格的注釋,如下圖所示,需要將input.c檔案經過注釋轉換程式轉換為output.c檔案所示

分析:

從input.c檔案可以看書,每行開頭遇見的內容有三種 // , /* ,其他**。因此,這裡就要分情況討論。可以定義三個函式,分別處理null,c,c++對應狀態。將 // 定義為cpp_state,  /* 定義為 c_state狀態,其他情況定義為null_state。下圖給出了三者的轉換關係:

應當注意的是:在c_state狀態轉換下,遇到*/後還應該考慮後邊是否還有其他**,以及在遇到 */之前會出現這種情況:*****/,還有遇到多行注釋的情況(應該在每行開始加上 //)

具體**如下:

"commentcovert.h"

#ifndef _comment_convert_h__

#define _comment_convert_h__

#include#include#define inputname "input.c"

#define outputname "ouput.c"

enum state

;void commentconvert(file *pfread,file *pfwrite);

void do_nul_state(file *pfread,file *pfwrite);

void do_c_state(file *pfread,file *pfwrite);

void do_cpp_state(file *pfread,file *pfwrite);

#endif // _comment_convert_h__

"commentconert.c"

#define _crt_secure_no_warnings

#include"commentconvert.h"

enum state state = nul_state;

void do_nul_state(file *pfread,file *pfwrite) //遇到null狀態下的處理

else if(second == '/') //null狀態下遇到//時直接輸出

else //null狀態下遇到/後又遇到其他字元將其直接輸出

}break;

case eof:

state = end_state;

default :

fputc(first,pfwrite);

break; }}

void do_cpp_state(file *pfread,file *pfwrite) //c++狀態下的處理

}void do_c_state(file *pfread,file *pfwrite) //c狀態下的處理

else

state = nul_state;

//如果'*/'之後不是'\n',說明在second之後還有字元,因此在此處輸入乙個換行,並將

//讀到的third字元返回到pfread中去,並將狀態置為 nul_state

//如果是'\n',說明c語言注釋已完,下乙個字元有可是『/』也有可能是其他字元,因此

//將狀態回到 nul_state

}else if(second == '*') //連續的**/問題

else

}break;

case '\n':

fputc(first,pfwrite);

fputc('/',pfwrite);

fputc('/',pfwrite);

break;

case eof:

state = end_state;

break;

default:

fputc(first,pfwrite);

break; }}

void commentconvert(file *pfread,file *pfwrite)

}}

"test.c"

#define _crt_secure_no_warnings

#include"commentconvert.h"

int main()

pfwrite = fopen(outputname,"w");

if(pfwrite == null)

commentconvert(pfread,pfwrite);

printf("轉換結束\n");

system("pause");

return 0;

}

C語言專案 注釋轉換

define crt secure no warnings 1 include include include typedef enum convertstate convertstate typedef enum state state convertstate convert file fin,...

c語言小專案 注釋轉換

這篇部落格,我將整理關於注釋轉換的知識,首先,得知道,注釋轉換包括,c語言注釋轉 換成c 注釋,和c 注釋轉換成c語言注釋。c語言注釋的風格 這是c語言注釋 c 語言注釋風格 這是c 注釋風格 下面,我主要分析將所有的注釋轉換成c 注釋,即就是 c語言注釋轉 換成c 注釋。這樣的轉換會存在以下多種情...

C語言小專案 注釋轉換

這裡所說的注釋轉換是指將c風格的注釋轉換成c 風格的注釋。那麼我們如何來實現這個目的呢?首先我們得有乙個名為 input.c 的檔案 裡面寫著一段c風格的注釋和一些 而我們轉換後的注釋及 應該儲存在乙個名為 output.c 的檔案裡。要將 input.c中的內容轉換,我們就得將該檔案中的內容乙個乙...