Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/11/2008, 03:22
Avatar de r0d
r0d
 
Fecha de Ingreso: noviembre-2007
Mensajes: 86
Antigüedad: 17 años, 1 mes
Puntos: 3
Respuesta: Split() en c++

Buenos dias,

gracias por este codigo. Si le interesa, tengo una funcion que hace mas o menos lo mismo aqui:
Código:
typedef std::vector<std::string>  StringVector;

StringVector Explode(const std::string & str, char separator )
{
   StringVector  result;
   size_t pos1 = 0;
   size_t pos2 = 0;
   while ( pos2 != str.npos )
   {
      pos2 = str.find(separator, pos1);
      if ( pos2 != str.npos )
      {
         if ( pos2 > pos1 )
            result.push_back( str.substr(pos1, pos2-pos1) );
         pos1 = pos2+1;
      }
   }
   result.push_back( str.substr(pos1, str.size()-pos1) );
   return result;
}
La ventaja de este codigo es que podemos separar la cadena en mas de dos trozos.

Nota 1: hay algo raro en tu codigo: en caso que no hay nuguno ',' en la cadena, el resultado es raro, porque no tienes en cuenta el resultado del funcion miembro string::find().

Nota 2: si posible, hay que evitar el uso de
Código:
system("PAUSE");
(para varias razones, si quieres, te explico un poco), es preferible, cuando es posible, utilizar
Código:
std::cin.get();
por ejemplo.