SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: ferrallas en Viernes 10 de Abril de 2009, 01:36

Título: Como almacenar en un char* array varios strings ?¿
Publicado por: ferrallas en Viernes 10 de Abril de 2009, 01:36
Hola, tengo un problema con un programa en C++ que me esta volviendo loco


Una primera parte del programa me devuelve varios strings de uno en uno en un bucle, y necesito almacenarlos en un vector char*, cada posicion del vector char* un string.


Es decir

char *resultado = new char[100];

string pepe1,pepe2,pepe3;

como pondria a resultado[0]=pepe1 ??


Muchas gracias!!
Título: Re: Como almacenar en un char* array varios strings ?¿
Publicado por: Eternal Idol en Viernes 10 de Abril de 2009, 09:46
resultado es una cadena de 100 caracteres, no es lo que buscas realmente.

Seria algo asi mas bien, es preferible que uses el bucle:

Código: Text
  1. int elementos = 15;
  2. char **resultado = new char*[elementos];
  3. for (int x = 0; x < elementos; x++)
  4. {
  5.   string pepe = getResult();
  6.   size_t pepeSize = pepe.size();
  7.   resultado[x] = new char[pepeSize + 1];
  8.   strcpy(resultado[x], pepe.c_str());
  9.   cout << resultado[x] << endl;
  10. }
  11.  

Asi en resultado[0] tendras la primera cadena, en resultado[1] la segunda y asi sucesivamente.

Despues tenes que liberar todo esto claro:
Código: Text
  1. for (int x = 0; x < elementos; x++)
  2. {
  3.   cout << resultado[x] << endl;
  4.   delete resultado[x];
  5. }
  6. delete[] resultado;
  7.