boost string_algo简明使用

来源:互联网 发布:钢结构设计软件下载 编辑:程序博客网 时间:2024/05/30 04:42

string_algo库是一个非常全面的字符串算法库,提供了大量的字符串操作函数,如大小写无关比较,修剪,特定模式的子串查找等,可以再不使用正则表达式的情况下处理大多数字符串相关问题。弥补了std::string的一些短处。


#include <boost/algorithm/string.hpp>#include <iostream>#include <vector>void SimpleUse(){using namespace boost;using namespace std;string str("readme.txt");if (ends_with(str, "txt")){cout << to_upper_copy(str) + " UPPER" << endl;}replace_first(str, "readme", "followme");cout << str << endl;vector<char> v(str.begin(), str.end());vector<char> v2 = to_upper_copy(erase_first_copy(v, "txt"));for (int i = 0; i < v2.size();i++)    {cout << v2[i];    }cout << endl;}void Upper_Lower(){using namespace boost;using namespace std;string str("I Don't Know!");cout << to_upper_copy(str) << endl;cout << str << endl;;to_lower(str);cout << str << endl;;}void Predicates_use(){using namespace boost;std::string str("I Don't Know!");assert(!starts_with(str, "i"));assert(istarts_with(str, "i"));assert(ends_with(str, "now!"));assert(icontains(str, "don't"));std::string str2 = to_lower_copy(str);assert(iequals(str, str2));assert(!ilexicographical_compare(str, "a"));std::string str3 = "THIS is upper";assert(all(str3.substr(0,4),is_upper()));}int main(int argc,char * argv[]){SimpleUse();Upper_Lower();Predicates_use();std::cin.get();return 0;}

结果:



详细参考:http://www.boost.org/doc/libs/1_55_0/doc/html/string_algo/reference.html









0 0
原创粉丝点击