Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Array de array de caracteres en C

Estas en el tema de Array de array de caracteres en C en el foro de C/C++ en Foros del Web. Hola, Necesito crear un array dinámico, cuyos elementos son arrays de caracteres (de tamaño variable también). Es decir: array [0] = "azul" array [1] = ...
  #1 (permalink)  
Antiguo 14/07/2015, 07:02
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 8 años, 10 meses
Puntos: 0
Array de array de caracteres en C

Hola,

Necesito crear un array dinámico, cuyos elementos son arrays de caracteres (de tamaño variable también).

Es decir:

array [0] = "azul"
array [1] = "rojo"
...
array [N] = "amarillo"

Para hacer esto, ¿es necesario utilizar arrays bidimensionales? ¿Cómo podría hacerlo si no?

Muchas gracias de antemano.

Saludos
  #2 (permalink)  
Antiguo 14/07/2015, 07:38
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Array de array de caracteres en C

Si tienes en cuenta que un string cualquiera, como "azul", es realmente un vector de caracteres tienes que, efectivamente, para almacenar una lista de strings necesitas un array bidimensional.

¿Cómo crear un array bidimensional dinámico? tienes que usar malloc / calloc y liberar, cuando ya no sea necesario, con free:

Código C:
Ver original
  1. char** lista = (char**)malloc( numElementos * sizeof(char*) );
  2.  
  3. for( i=0; i < numElementos; i++ )
  4.   lista[ i ] = calloc( longitudCadena, sizeof( char ) );

Fíjate que a cada cadena le podrás asignar la longitud que te de la gana.

Para liberar la memoria necesitas hacer el proceso inverso... primero liberas cada una de las cadenas de caracteres y, finalmente, liberas el puntero lista.

PD.: ¿por qué uso malloc para lista y calloc para cada cadena? simple, calloc resetea la memoria reservada, pone todos sus bytes a 0. Como el caracter 0 se corresponde con el usado para finalizar las cadenas en c consigo, en una sola línea, que cada cadena aparezca como vacía.

Un saludo
  #3 (permalink)  
Antiguo 14/07/2015, 07:58
 
Fecha de Ingreso: julio-2015
Ubicación: Guatemala
Mensajes: 11
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Array de array de caracteres en C

Buenas amigo te comento, puedes hacer un array bidimencional declarándolo de la siguiente forma tipo nombre(elementos_en_x,elementos_en_y); aqui si no estoy mal es una matriz, bien lo que puedes hacer mediante una forma simple!

algo asi:

int arr[2][3] = { 1, 2, 3, 4, 5, 6};

y si lo quieres hacer de una forma en el que el usuario ingrese los numeros, crea dos ciclos for uno que recorra en x y otro en y

algo asi:

int fila, columna;
int matriz[2][2];
for(fila=0; fila<2; fila++)
for(columna=0; columna<2; columna++)

donde pides los elementos y guardas en los elementos de fila y columna


-ESPERO TE SIRVA, SOY NUEVO EN EL FORO DISCULPA SI NO ES LO QUE ESPERABAS, QUIERO APORTAR LO POCO QUE SE :D
  #4 (permalink)  
Antiguo 14/07/2015, 08:06
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Array de array de caracteres en C

Cita:
Iniciado por OB11GT Ver Mensaje
Buenas amigo te comento, puedes hacer un array bidimencional declarándolo de la siguiente forma tipo nombre(elementos_en_x,elementos_en_y); aqui si no estoy mal es una matriz, bien lo que puedes hacer mediante una forma simple!
Solo veo un problema en tu propuesta: no es dinámica... no puedes utilizar un tamaño diferente para cada cadena.

Ah sí... por favor, intenta decorar el código... normas del foro y legilidad.

Un saludo.
  #5 (permalink)  
Antiguo 14/07/2015, 08:19
 
Fecha de Ingreso: julio-2015
Ubicación: Guatemala
Mensajes: 11
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Array de array de caracteres en C

talvez esto te ayude! >>http://www.lawebdelprogramador.com/foros/Dev-C/199052-ARRAY-BIDIMENSIONAL-EN-C.html
  #6 (permalink)  
Antiguo 14/07/2015, 08:24
 
Fecha de Ingreso: julio-2015
Ubicación: Guatemala
Mensajes: 11
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Array de array de caracteres en C

Cita:
Iniciado por eferion Ver Mensaje
Solo veo un problema en tu propuesta: no es dinámica... no puedes utilizar un tamaño diferente para cada cadena.

Ah sí... por favor, intenta decorar el código... normas del foro y legilidad.

Un saludo.



Gracias :D por el consejo, no se mucho pero intente aportar algo! y lo del codigo no se mucho, pero bueno espero aprender y si tienes algo que me ayude me lo puedes pasar gracias!

Saludos!
  #7 (permalink)  
Antiguo 14/07/2015, 08:29
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Array de array de caracteres en C

Cita:
Iniciado por OB11GT Ver Mensaje
No es por criticar gratuitamente... pero esa solución es para C++, no para C. Lo siento.

No se trata de escribir por poner algo, sino de responder si se va a aportar algo realmente útil. Si no eres capaz de dar una respuesta con tus propios medios necesitas mejorar tu nivel antes de plantearte ayudar a los demás... si no tu ayuda va a ser más un obstáculo y vas a acabar poniéndote en evidencia.

No te lo digo a malas, simplemente intento aconsejarte antes de que te tachen de troll.

Cita:
Iniciado por OB11GT Ver Mensaje
no se mucho pero intente aportar algo! y lo del codigo no se mucho, pero bueno espero aprender y si tienes algo que me ayude me lo puedes pasar gracias!
Para aprender a programar hay que leer libros de C++ y plantearse problemas a resolver... y resolverlos, claro.

No hay otra forma, no hay una pastilla mágica ni un truco especial para aprender. Programar es un trabajo casi artesanal... la mejor solución depende de lo que estés haciendo. No hay una solución universal, lo que funciona muy bien en unos casos da un pésimo resultado en otros. Lo que sí, hay que tener bastante paciencia y perserverancia... si no estás abocado al fracaso.

Si quieres saber más sobre webs con puzzles con los que puedes intentar pegarte avísame y te pongo algunos ejemplos... aunque también los puedes buscar en google ;)

Un saludo.
  #8 (permalink)  
Antiguo 14/07/2015, 08:53
 
Fecha de Ingreso: julio-2015
Ubicación: Guatemala
Mensajes: 11
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Array de array de caracteres en C

Cita:
Iniciado por eferion Ver Mensaje
No es por criticar gratuitamente... pero esa solución es para C++, no para C. Lo siento.

No se trata de escribir por poner algo, sino de responder si se va a aportar algo realmente útil. Si no eres capaz de dar una respuesta con tus propios medios necesitas mejorar tu nivel antes de plantearte ayudar a los demás... si no tu ayuda va a ser más un obstáculo y vas a acabar poniéndote en evidencia.

No te lo digo a malas, simplemente intento aconsejarte antes de que te tachen de troll.



Para aprender a programar hay que leer libros de C++ y plantearse problemas a resolver... y resolverlos, claro.

No hay otra forma, no hay una pastilla mágica ni un truco especial para aprender. Programar es un trabajo casi artesanal... la mejor solución depende de lo que estés haciendo. No hay una solución universal, lo que funciona muy bien en unos casos da un pésimo resultado en otros. Lo que sí, hay que tener bastante paciencia y perserverancia... si no estás abocado al fracaso.

Si quieres saber más sobre webs con puzzles con los que puedes intentar pegarte avísame y te pongo algunos ejemplos... aunque también los puedes buscar en google ;)

Un saludo.

jajaja disculpa si no llene tus espectativas, y no soy troll ni nada por el estilo! trato de ayudar lo cual no hacen 200 que miran las publicaciones, tal vez no sepa mucho pero intento averiguar algo para ayudar! no creo que haya nada malo y por cierto si leí lo que busque ;) y si ya sabes que bueno! felicidades! pero no te hagas el gigante que sobre vos siempre va a existir alguien que sabe mas! ;) lindo dia
  #9 (permalink)  
Antiguo 14/07/2015, 08:57
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Array de array de caracteres en C

Cita:
Iniciado por OB11GT Ver Mensaje
pero no te hagas el gigante que sobre vos siempre va a existir alguien que sabe mas! ;) lindo dia
Soy consciente de ello... por ese motivo si me encuentro con una duda y no estoy seguro de que mi respuesta vaya a servir de algo evito responder pero me quedo a la espera de ver qué responden los demás para ver si soy capaz de aprender algo de ese tema.

Aun así, insisto, no te estoy acusando de troll ni de nada parecido, si te lo has tomado a mal, lo siento, es lo único que puedo decir.

Pero igualmente insisto, también le puede sentar mal al que pide ayuda que le respondas con algo que no le sirve absolutamente para nada. y que además le puede llegar a confundir.

Un saludo
  #10 (permalink)  
Antiguo 14/07/2015, 09:07
 
Fecha de Ingreso: julio-2015
Ubicación: Guatemala
Mensajes: 11
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Array de array de caracteres en C

Cita:
Iniciado por eferion Ver Mensaje
Soy consciente de ello... por ese motivo si me encuentro con una duda y no estoy seguro de que mi respuesta vaya a servir de algo evito responder pero me quedo a la espera de ver qué responden los demás para ver si soy capaz de aprender algo de ese tema.

Aun así, insisto, no te estoy acusando de troll ni de nada parecido, si te lo has tomado a mal, lo siento, es lo único que puedo decir.

Pero igualmente insisto, también le puede sentar mal al que pide ayuda que le respondas con algo que no le sirve absolutamente para nada. y que además le puede llegar a confundir.

Un saludo
No me lo tomo a mal, y si yo quiero aprender c++ y si me puedes ayudar o recomendar unos libros para leer enhorabuena! mejor! se me hace difícil pero la intención de aprender y ayudar no me la van a quitar! de los errores se aprende, por eso pongo que soy nuevo en el foro! :) si me puedes recomendar unos libros esta bien se te agradece :D
  #11 (permalink)  
Antiguo 14/07/2015, 10:05
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Array de array de caracteres en C

Cita:
Iniciado por OB11GT Ver Mensaje
si me puedes recomendar unos libros esta bien se te agradece :D
  • "The C++ Standard Library: A Tutorial and Reference" de Nicolai M. Josuttis. Una buena referencia sobre la STL
  • "Modern C++ Design: Generic Programming and Design Patterns Applied" de Andrei Alexandrescu. Templates y patrones a lo bestia.
  • "The Design and Evolution of C++" de Bjarne Stroustrup. El autor es el creador de C++, no hacen falta más comentarios
  • "Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions" de Herb Sutter. El sr Sutter es uno de los gurús de C++. Con los problemas que te plantea podrás poner a prueba tus conocimientos.
  • ...
La lista puede ser todo lo larga que quieras, pero creo que con esos ya tienes material para una temporada.


Un saludo

Última edición por eferion; 14/07/2015 a las 10:11
  #12 (permalink)  
Antiguo 15/07/2015, 02:25
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Array de array de caracteres en C

Hola,

Gracias a todos por vuestras respuestas!

Etiquetas: caracteres
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:51.