Головна »»» C++ Builder

Аналог explode (php) в c++


	
  1. #include 
  2. vector<AnsiString> explode( const AnsiString &delimiter, const AnsiString &explodeme);
  3. vector<AnsiString> explode( const AnsiString &delimiter, const AnsiString &str)
  4. {
  5. vector<AnsiString> arr;
  6. arr.erase(arr.begin(),arr.end());
  7. int strleng = str.Length();
  8. int delleng = delimiter.Length();
  9. if (delleng==0)
  10. return arr;//no change
  11.  
  12. int i=1;
  13. int k=1;
  14. while( i<=strleng )
  15. {
  16. int j=0;
  17. while (i+j<strleng && j<delleng && str[i+j]==delimiter[j+1])
  18. j++;
  19. if (j==delleng)//found delimiter
  20. {
  21. arr.push_back( str.SubString(k, i-k) );
  22. i+=delleng;
  23. k=i;
  24. }
  25. else
  26. {
  27. i++;
  28. }
  29. }
  30. arr.push_back( str.SubString(k, i-k) );
  31. return arr;
  32. }
  33.  
  34. /**
  35. Використання
  36.  
  37. vector v = explode(__DELIMITER, str);
  38. */
 
02.12.2011
2797 переглядів