boost's msdn
http://theboostcpplibraries.com/index
#include <conio.h>
#include <iostream>
#include <string>
#include <boost/tokenizer.hpp>
using namespace std;
void test002()
{
typedef boost::tokenizer<boost::char_separator<wchar_t>,std::wstring::const_iterator, std::wstring> tokenizer;
std::wstring s = L"Boost C++ Libraries android androfuck ";
boost::char_separator<wchar_t> sep(L" ");
tokenizer tok(s, sep);
for (tokenizer::iterator it = tok.begin(); it != tok.end(); ++it)
std::wcout << *it <<std::endl;
}
void test001()
{
typedef boost::tokenizer<boost::char_separator<char>> tokenizer;
std::string s = "Boost C++ Libraries test 中文 fuck android andfff ";
//boost::char_separator<char> sep(" ");
boost::char_separator<char> sep("and"," ");
//boost::char_separator<char> sep{" ", "+", boost::keep_empty_tokens};
tokenizer tok(s,sep);
for (tokenizer::iterator it = tok.begin(); it != tok.end(); ++it)
std::cout << *it <<std::endl;
}
//http://theboostcpplibraries.com/boost.tokenizer
int main(int argc, char* argv[])
{
test002();
getch();
}
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/lexical_cast.hpp>
#include <string>
#include <iostream>
#include <conio.h>
#include <boost/format.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/regex.hpp>
using namespace boost::uuids;
using namespace boost::algorithm;
//http://theboostcpplibraries.com/boost.stringalgorithms
int main()
{
random_generator gen;
uuid id = gen();
std::string ss = to_string(id);
std::cout << ss << '\n';
std::cout << boost::lexical_cast<std::string>(id) << '\n';
std::string s = "Boost C++ Libraries";
std::cout << to_upper_copy(s) << '\n';
std::cout.setf(std::ios::boolalpha);
std::cout << starts_with(s, "Boost") << '\n';
std::cout << ends_with(s, "Libraries") << '\n';
std::cout << contains(s, "C++") << '\n';
std::cout << lexicographical_compare(s, "Boost") << '\n';
std::vector<std::string> v;
split(v, s, is_space());
std::cout << v.size() << '\n';
for (int i=0;i<v.size();i++)
{
std::cout<<v.at(i)<<std::endl;
}
boost::iterator_range<std::string::iterator> r =find_regex(s, boost::regex("\\w\\+\\+"));
std::cout <<"regex="<< r << '\n';
std::string s3 = "123456789Boost C++ Libraries123456789";
std::cout << trim_left_copy_if(s3, is_digit()) << '\n';
std::cout << trim_right_copy_if(s3, is_digit()) << '\n';
std::cout << trim_copy_if(s3, is_digit()) << '\n';
std::string s4 = "\t Boost C++ Libraries \t";
std::cout << "_" << trim_left_copy(s4) << "_\n";
std::cout << "_" << trim_right_copy(s4) << "_\n";
std::cout << "_" << trim_copy(s4) << "_\n";
std::string s5 = "Boost C++ Libraries";
std::cout << replace_first_copy(s5, "+", "-") << '\n';
std::cout << replace_nth_copy(s5, "+", 0, "-") << '\n';
std::cout << replace_last_copy(s5, "+", "-") << '\n';
std::cout << replace_all_copy(s5, "+", "-") << '\n';
std::cout << replace_head_copy(s5, 5, "BOOST") << '\n';
std::cout << replace_tail_copy(s5, 9, "LIBRARIES") << '\n';
//std::string s = "Boost C++ Libraries";
boost::iterator_range<std::string::iterator> r2 = find_first(s, "C++");
std::cout << r2 << '\n';
r2 = find_first(s, "xyz");
std::cout << r2 << '\n';
//std::string s = "Boost C++ Libraries";
std::cout << erase_first_copy(s, "s") << '\n';
std::cout << erase_nth_copy(s, "s", 0) << '\n';
std::cout << erase_last_copy(s, "s") << '\n';
std::cout << erase_all_copy(s, "s") << '\n';
std::cout << erase_head_copy(s, 5) << '\n';
std::cout << erase_tail_copy(s, 9) << '\n';
getch();
}