題目就不貼了。
這道題難度不是很大,只要會使用string的find函式和replace函式或者正規表示式就能將問題解決。總的來說這兩種方式的思路都是先匹配"}",然後替換裡面的值,下面是兩種方法的**:
如果你不會正規表示式,可以參考我的另一篇部落格正規表示式入門
正規表示式版
#include
using
namespace std;
void
getkeyvalue
(string s,string& key,string& value)
string replace
(string s,map
& mp)
\\}");
smatch match_result;
while(1
)else
}return ans;
}int
main
(int argc,
char
const
*ar**)
for(
int i =
0;i < m; i++
) cout <<
replace
(s,mp)
<< endl;
return0;
}
find + replace版
#include
#include
#include
#include
#include
using
namespace std;
int n,m;
vector lines;
string str;
map dict;
void
getkeyvalue
(string s,string& key,string& value)
void
replace()
}",begin)
; string name = s.
substr
(left+
3,right -1-
(left +3)
+1);
s = s.
replace
(left,name.
size()
+6,dict[name]);
begin = left + dict[name]
.size()
;}}}
intmain()
string line,key,value;
for(
int i =
0;i < m; i++
)replace()
;for
(int i =
0;i < lines.
size()
; i++
)}
CCF 201509 3 模板生成系統
這題第三題又是前端類的模擬。題目給定乙個模板,讓我們根據模板用引數替換其中的變數生成乙個特定的html文件 題目邏輯不難,考的也是字串類的,不過這種題一定要注意題目細節和細心做題。這種字串的題首選是用正規表示式來解題。思路 簡單說下思路。一行行處理 找到 模式的把這個模式識別到的字串替換成引數。最後...
CCF CSP 201509 3 模板生成系統
成成最近在搭建乙個 其中一些頁面的部分內容來自資料庫中不同的資料記錄,但是頁面的基本結構是相同的。例如,對於展示使用者資訊的頁面,當使用者為 tom 時,網頁的源 是 而當使用者為 jerry 時,網頁的源 是 這樣的例子在包含動態內容的 中還有很多。為了簡化生成網頁的工作,成成覺得他需要引入一套模...
ccf模板生成系統
這題目string處理的還是蠻不錯的,用到了getline,substr,find,等函式 include include using namespace std int main for int j 0 j str j 0 getline cin,str j 1 第二個有空格所以用getline ...