PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   想麻煩會用 c++ 並對 I/O 有心得的朋友進來看看 (https://www.pcdvd.com.tw/showthread.php?t=746350)

paradise 2007-09-21 05:20 AM

想麻煩會用 c++ 並對 I/O 有心得的朋友進來看看
 
需要寫一個小程式來讀取 java 或是 c++ 的 source code
並且回報一些資料
目前我覺得較有問題的是 blank line 和 function

最一開始 我是假設 blank line 都是將 '\n' 換行符號放在最前面
所以用 getline() 讀取時 只要去查位置為 [0] 的 slot 是否為 '\n' 就可以判定該行是否能為 blank line
或是我先用 getline() 先把 source code 裡面的整句丟到一個 char str[] 裡
然後逐一的把整個 array 掃過 只要在 '\n' 之前都是空白的話
那麼該行就是 blank line

另外就是 function 的判別
可能會先檢查某行的一開始是否為某種類別 接下來的 word 是否為符合規定的 char
之後是否接 ( ) 並且裡面是否有 parameter
聽起來好像是知道 algorithm 但是實際要寫 pseudo-code 的時候有困難

希望聽聽大家意見
如果有更好的方法也麻煩指教

謝謝

harrisonlin 2007-09-21 12:30 PM

可以用 regular expression 處理.

1.開頭到 \n 之間有且全都是 0~n 個空白,這行就是可以忽略的.
2.function 也大都有 "void xxx() {" 這樣的特徵,只要找到特徵,再用 regular expression 去判斷就行囉!

paradise 2007-09-21 04:31 PM

引用:
作者harrisonlin
可以用 regular expression 處理.

1.開頭到 \n 之間有且全都是 0~n 個空白,這行就是可以忽略的.
2.function 也大都有 "void xxx() {" 這樣的特徵,只要找到特徵,再用 regular expression 去判斷就行囉!


你好
不知道是否有在 c++ 上使有 re 的一些文章可供參考
之前有唸過 re 可是只是完全在紙上作業的 沒有應到用 coding 用
所以要怎麼嵌入還有點沒有頭緒

harrisonlin 2007-09-21 05:10 PM

c/c++ 上的 RE 我也沒有什麼經驗,大多是在 Java 和 Python 上使用.

您可以看一下 Boost C++ Library(http://www.boost.org),它有提供常規表示式的函式/類別庫!


所有的時間均為GMT +8。 現在的時間是05:24 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。