成成最近在搭建乙個**,其中一些頁面的部分內容來自資料庫中不同的資料記錄,但是頁面的基本結構是相同的。例如,對於展示使用者資訊的頁面,當使用者為 tom 時,網頁的源**是
而當使用者為 jerry 時,網頁的源**是
這樣的例子在包含動態內容的**中還有很多。為了簡化生成網頁的工作,成成覺得他需要引入一套模板生成系統。
模板是包含特殊標記的文字。成成用到的模板只包含一種特殊標記,格式為 },其中 var 是乙個變數。該標記在模板生成時會被變數 var 的值所替代。例如,如果變數 name = 「tom」,則 } 會生成 tom。具體的規則如下:
輸入的第一行包含兩個整數 m, n,分別表示模板的行數和模板生成時給出的變數個數。
接下來 m 行,每行是乙個字串,表示模板。
接下來 n 行,每行表示乙個變數和它的值,中間用乙個空格分隔。值是字串,用雙引號 (") 括起來,內容可包含除雙引號以外的任意可列印 ascii 字元(ascii 碼範圍 32, 33, 35-126)。
輸出包含若干行,表示模板生成的結果。
輸入的模板每行長度不超過 80 個字元(不包含換行符)。
輸入保證模板中所有以 }的形式的時候不進行遞迴替換。
#include
#include
#include
#include
using namespace std;
string str[
105]
;//儲存模板
//儲存變數和值
intmain()
while
(n--
)for
(int i=
1;i<=m;i++
)//輸出模板 }")
;while
(true)
}",lpos);}
cout<
<
}return0;
}
CCF 201509 3 模板生成系統
這題第三題又是前端類的模擬。題目給定乙個模板,讓我們根據模板用引數替換其中的變數生成乙個特定的html文件 題目邏輯不難,考的也是字串類的,不過這種題一定要注意題目細節和細心做題。這種字串的題首選是用正規表示式來解題。思路 簡單說下思路。一行行處理 找到 模式的把這個模式識別到的字串替換成引數。最後...
CCF 201509 3 模板生成系統 正規表示式
題目就不貼了。這道題難度不是很大,只要會使用string的find函式和replace函式或者正規表示式就能將問題解決。總的來說這兩種方式的思路都是先匹配 然後替換裡面的值,下面是兩種方法的 如果你不會正規表示式,可以參考我的另一篇部落格正規表示式入門 正規表示式版 include using na...
Android Studio 根據模板自動生成
外掛程式功能 根據模板自動生成檔案 可包含資料夾 根據xml自動生成findviewbyid 包括在介面卡中 解決databinding等apt工具造成編譯錯誤誤導 功能會根據我工作的需要繼續更新 自動生成模板 首先,在android studio準備好模板檔案,具體格式如下 裡面的和會自動替換為業...