fork download
  1. #include <string>
  2.  
  3. #include <iostream>
  4.  
  5. using std::cout;
  6.  
  7. using std::string;
  8.  
  9.  
  10.  
  11. #include <boost/tokenizer.hpp>
  12.  
  13. using boost::tokenizer;
  14.  
  15. using boost::escaped_list_separator;
  16.  
  17.  
  18.  
  19. typedef tokenizer<escaped_list_separator<char> > so_tokenizer;
  20.  
  21.  
  22.  
  23. int main()
  24.  
  25. {
  26.  
  27. string a[] = { ";12;25;25;8;3;1;10;3;1;10;3;1;10;3;1;10;12;8;8",
  28.  
  29. "20;12;25;25;;3;1;10;3;1;10;3;1;10;3;1;10;12;8;8" };
  30.  
  31.  
  32.  
  33. for (int i = 0; i < 2; i++)
  34.  
  35. {
  36.  
  37. std::cout << a[i] << "\n";
  38.  
  39. so_tokenizer tok(a[i], escaped_list_separator<char>('\\', ';', '\"'));
  40.  
  41. for(so_tokenizer::iterator beg=tok.begin(); beg!=tok.end(); ++beg)
  42.  
  43. {
  44.  
  45. cout << " tok=[" << *beg << "]\n";
  46.  
  47. }
  48.  
  49. }
  50.  
  51.  
  52.  
  53. return 0;
  54.  
  55. }
  56.  
  57.  
Success #stdin #stdout 0.02s 2820KB
stdin
Standard input is empty
stdout
;12;25;25;8;3;1;10;3;1;10;3;1;10;3;1;10;12;8;8
  tok=[]
  tok=[12]
  tok=[25]
  tok=[25]
  tok=[8]
  tok=[3]
  tok=[1]
  tok=[10]
  tok=[3]
  tok=[1]
  tok=[10]
  tok=[3]
  tok=[1]
  tok=[10]
  tok=[3]
  tok=[1]
  tok=[10]
  tok=[12]
  tok=[8]
  tok=[8]
20;12;25;25;;3;1;10;3;1;10;3;1;10;3;1;10;12;8;8
  tok=[20]
  tok=[12]
  tok=[25]
  tok=[25]
  tok=[]
  tok=[3]
  tok=[1]
  tok=[10]
  tok=[3]
  tok=[1]
  tok=[10]
  tok=[3]
  tok=[1]
  tok=[10]
  tok=[3]
  tok=[1]
  tok=[10]
  tok=[12]
  tok=[8]
  tok=[8]