您的位置:首页 > 编程语言 > C语言/C++

C++的字符串格式化库

2018-03-04 08:36 204 查看

这里向大家介绍一个C++的字符串格式化库,叫cpptempl,这个库支持对字符串格式的条件,循环,变量插入。看上去很不错,只不过其是基于boost库的。

下面是一个例子:

12345678
// The text template
wstring text = L
"I heart {$place}!"
;
// Data to feed the template engine
cpptempl::data_map data ;
// {$place} => Okinawa
data[L
"place"
] = cpptempl::make_data(L
"Okinawa"
);
// parse the template with the supplied data dictionary
wstring result = cpptempl::parse(text, data) ;

输出结果是:

I heart Okinawa!

是不是很方便?让我们看一个更复杂的例子:

123456789101112131415
// You'd probably load this template from a file in real life.
wstring text = L
"<h3>Locations</h3>\n<ul>\n"
    
L
"{% for place in places %}"
    
L
"<li>{$place}</li>\n"
    
L
"{% endfor %}"
    
L
"</ul>"
;
// Create the list of items
cpptempl::data_list places;
places.push_back(cpptempl::make_data(L
"Okinawa"
));
places.push_back(cpptempl::make_data(L
"San Francisco"
));
// Now set this in the data map
cpptempl::data_map data ;
data[L
"places"
] = cpptempl::make_data(places);
// parse the template with the supplied data dictionary
wstring result = cpptempl::parse(text, data) ;

输出结果是:

<h3>Locations</h3>
<ul>
<li>Okinawa</li>
<li>San Francisco</li>
</ul>

更为详细的说明请到这里:http://bitbucket.org/ginstrom/cpptemplate/wiki/Home

Google也有一个类似的库叫ctemplate:http://code.google.com/p/google-ctemplate/ 提供相似的方法,你也可以试试看。与Google相对应的Java库叫Hapax:http://code.google.com/p/hapax/

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: