C++之BOOST字符串查找示例
本文实例讲述了C++中BOOST字符串查找的方法,分享给大家供大家参考。具体方法如下:
BOOST 字符串查找示例
#include<string> #include<iostream> #include<algorithm> #include<functional> #include<boost/algorithm/string/case_conv.hpp> #include<boost/algorithm/string/find.hpp> usingnamespacestd; usingnamespaceboost; intmain() { cout<<"*FindExample*"<<endl<<endl; stringstr1("abc___cde___efg"); stringstr2("abc"); //find"cde"substring iterator_range<string::iterator>range=find_first(str1,string("cde")); //convertasubstringtouppercase //notethatiteratorrangecanbedirectlypassedtothealgorithm to_upper(range); cout<<"str1withupper-casedpartmatchingcde:"<<str1<<endl; //getaheadofthestring iterator_range<string::iterator>head=find_head(str1,3); cout<<"head(3)ofthestr1:"<<string(head.begin(),head.end())<<endl; //getthetail head=find_tail(str2,5); cout<<"tail(5)ofthestr2:"<<string(head.begin(),head.end())<<endl; //charprocessing chartext[]="hellodolly!"; iterator_range<char*>crange=find_last(text,"ll"); //transformtherange(add1) transform(crange.begin(),crange.end(),crange.begin(),bind2nd(plus<char>(),1)); //uppercasetherange to_upper(crange); cout<<text<<endl; cout<<endl; return0; }
boost判定函数的使用
#include<string> #include<iostream> #include<functional> #include<boost/algorithm/string/predicate.hpp> #include<boost/algorithm/string/classification.hpp> #include<boost/bind.hpp>
usingnamespacestd; usingnamespaceboost;
intmain() { cout<<"*PredicateExample*"<<endl<<endl; stringstr1("123xxx321"); stringstr2("abc"); //Checkifstr1startswith'123' cout<<"str1startswith\"123\":"<< (starts_with(str1,string("123"))?"true":"false")<<endl; //Checkifstr1endswith'123' cout<<"str1endswith\"123\":"<< (ends_with(str1,string("123"))?"true":"false")<<endl; //Checkifstr1containes'xxx' cout<<"str1contains\"xxx\":"<< (contains(str1,string("xxx"))?"true":"false")<<endl; //Checkifstr2equalsto'abc' cout<<"str2equals\"abc\":"<< (equals(str2,string("abc"))?"true":"false")<<endl; //Classificationfunctorsandallpredicate if(all(";.,",is_punct())) { cout<<"\";.,\"areallpunctuationcharacters"<<endl; } //Classificationpredicatescanbecombined if(all("abcxxx",is_any_of("xabc")&&!is_space())) { cout<<"true"<<endl; } cout<<endl; return0; }