• Viernes 8 de Noviembre de 2024, 16:41

Autor Tema:  Como almacenar en un char* array varios strings ?¿  (Leído 1598 veces)

ferrallas

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Como almacenar en un char* array varios strings ?¿
« en: Viernes 10 de Abril de 2009, 01:36 »
0
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!!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como almacenar en un char* array varios strings ?¿
« Respuesta #1 en: Viernes 10 de Abril de 2009, 09:46 »
0
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.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.