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; }