guitar-player

Vector_split.cpp

Aug 3rd, 2012
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <iomanip>
  5. #include <fstream>
  6. #include <cstdlib>
  7. #include <string>
  8. #include <cmath>
  9. using namespace std;
  10.  
  11.  
  12. void imprime_vect(const vector<string>& v){
  13.     cout << "[" ;
  14.     if (!v.empty()){
  15.         cout << v.front() ;
  16.         vector<string>::const_iterator it=v.begin()+1;
  17.         for (; it!=v.end();it++){
  18.             cout <<", "<<*it ;
  19.             }      
  20.     }
  21.     cout << "]";
  22. }
  23.  
  24. vector<string> split(string& linea ){
  25.     vector<string> resultado;
  26.     string linea_tot;
  27.     string nuevo;
  28.     int i=0;
  29.     while (i <= int(linea.length())){
  30.         if(!isspace(linea[i]) && !isspace(linea[i+1])){
  31.             int j=i;
  32.             linea_tot="";
  33.             while(true){           
  34.                 if (isspace(linea[j])) break;
  35.                 else if (linea[j] == char(0)) break;
  36.                 else {
  37.                 linea_tot+=linea[j];
  38.                 j++;
  39.                 }
  40.             }
  41.             resultado.push_back(linea_tot);
  42.             i=j;
  43.         }
  44.         else if (!isspace(linea[i])  &&  isspace(linea[i+1])){
  45.             nuevo="";
  46.             nuevo=linea[i];
  47.             resultado.push_back(nuevo);
  48.         }
  49.         i++;
  50.     }
  51.     return resultado;
  52. }
  53.  
  54.  
  55. int main(){
  56.     vector<string> vv;
  57.     string lineas="a 10000000 12131.0 1231qs as 1 212312 3 123 123 151 123jaujs u";
  58.     cout << lineas << endl;
  59.     vv=split(lineas);
  60.     imprime_vect(vv);
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment