Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/09/2012, 02:32
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 10 meses
Puntos: 22
Respuesta: problema al parsear numero de un string con istringstream

Hola ShotoReaper.

Un ejemplo con una opción diferente:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. vector <int> ParseStringToInt(string);
  7. void ShowVector(vector <int>);
  8.  
  9. int main(int argc, char* argv[])
  10. {
  11.   vector <int> vec;
  12.   string Cadena = "1/2/3 4/5/6 7/8/9 16a32&64 128&512*1024...";
  13.  
  14.   vec = ParseStringToInt(Cadena);
  15.   ShowVector(vec);
  16.  
  17.   cin.get();
  18.   return 0;
  19. }
  20.  
  21. vector <int> ParseStringToInt(string str) {
  22.   vector <int> v;
  23.   string s;
  24.   int i = 0;
  25.   while (i < str.length()) {
  26.     s.clear();
  27.     while (isdigit(str[i]))
  28.       s += str[i++];
  29.     if (s.length()>0)
  30.       v.push_back(atoi(s.c_str()));
  31.     i++;
  32.   }
  33.   return v;
  34. }
  35.  
  36. void ShowVector(vector <int>v) {
  37.   for (int i=0; i < v.size();i++)
  38.     cout << v.at(i) << endl;
  39. }
Cualquier caracter que no sea un dígito decimal es considerado separador.

Saludos.