#include <string>
#include <iostream>
using std::cout;
using std::string;
#include <boost/tokenizer.hpp>
using boost::tokenizer;
using boost::escaped_list_separator;
typedef tokenizer<escaped_list_separator<char> > so_tokenizer;
int main()
{
string a[] = { ";12;25;25;8;3;1;10;3;1;10;3;1;10;3;1;10;12;8;8",
"20;12;25;25;;3;1;10;3;1;10;3;1;10;3;1;10;12;8;8" };
for (int i = 0; i < 2; i++)
{
std::cout << a[i] << "\n";
so_tokenizer tok(a[i], escaped_list_separator<char>('\\', ';', '\"'));
for(so_tokenizer::iterator beg=tok.begin(); beg!=tok.end(); ++beg)
{
cout << " tok=[" << *beg << "]\n";
}
}
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KCiNpbmNsdWRlIDxpb3N0cmVhbT4KCnVzaW5nIHN0ZDo6Y291dDsKCnVzaW5nIHN0ZDo6c3RyaW5nOwoKCgojaW5jbHVkZSA8Ym9vc3QvdG9rZW5pemVyLmhwcD4KCnVzaW5nIGJvb3N0Ojp0b2tlbml6ZXI7Cgp1c2luZyBib29zdDo6ZXNjYXBlZF9saXN0X3NlcGFyYXRvcjsKCgoKdHlwZWRlZiB0b2tlbml6ZXI8ZXNjYXBlZF9saXN0X3NlcGFyYXRvcjxjaGFyPiA+IHNvX3Rva2VuaXplcjsKCgoKaW50IG1haW4oKQoKewoKICAgIHN0cmluZyBhW10gPSB7ICI7MTI7MjU7MjU7ODszOzE7MTA7MzsxOzEwOzM7MTsxMDszOzE7MTA7MTI7ODs4IiwKCiAgICAgICAgICAgICAgICAgICAiMjA7MTI7MjU7MjU7OzM7MTsxMDszOzE7MTA7MzsxOzEwOzM7MTsxMDsxMjs4OzgiIH07CgoKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykKCiAgICB7CgogICAgICAgIHN0ZDo6Y291dCA8PCBhW2ldIDw8ICJcbiI7CgogICAgICAgIHNvX3Rva2VuaXplciB0b2soYVtpXSwgZXNjYXBlZF9saXN0X3NlcGFyYXRvcjxjaGFyPignXFwnLCAnOycsICdcIicpKTsKCiAgICAgICAgZm9yKHNvX3Rva2VuaXplcjo6aXRlcmF0b3IgYmVnPXRvay5iZWdpbigpOyBiZWchPXRvay5lbmQoKTsgKytiZWcpCgogICAgICAgIHsKCiAgICAgICAgICAgIGNvdXQgPDwgIiAgdG9rPVsiIDw8ICpiZWcgPDwgIl1cbiI7CgogICAgICAgIH0KCiAgICB9CgoKCiAgICByZXR1cm4gMDsKCn0KCg==