[C con Clase] Ayuda, inicializar cadena de texto

Davidson, Steven srd4121 en njit.edu
Mar Sep 17 21:17:35 CEST 2013


Hola Diego,

2013/9/17 Diego <diegogeid en gmail.com>

> Buenas tardes, tengo una duda simple cuya respuesta edsconozco y la
> planteo:
>
> Puedo inicializar arrays de cadenas de caracteres de forma simple?
>
> Es decir, en vez de inicializar una cadena de caracteres como
>
> char aa[]={"Cadena de caracteres"}
>
>
Esto no es correcto. Piensa que las comillas ya incluyen las llaves. Por lo
tanto, escribe:

char aa[] = "Cadena de caracteres";

Necesito inicializar un array de ellos, algo así como
>
> char aa[][]={"Cadena 1","Cadena 2","cadena 3"}
>
>
La inicialización es correcta, pero no la declaración de 'aa', porque debes
indicar las cantidades de los elementos, aunque no tienes que hacerlo para
la primera "dimensión". Esto es,

char aa[][9] = { "Cadena 1", "Cadena 2", "cadena 3" };

De foma tal que cuando inserte una instrucción como
>
> puts(aa[0]);
>
> aparezca en la pantalla la correspondiente cadena, o existe alguna forma
> simple de hacerlo?
>
>
Lo anterior funcionará, pero si quieres un array de cadenas de diferentes
cantidades de caracteres, entonces puedes usar un array de punteros a
'char'. Por ejemplo,

char cad1[] = "Cadena 1";
char cad2[] = "Cadena 2";
char cad3[] = "cadena 3";
char cad4[] = "hola";
char cad5[] = "mundo";

char * aa[] = { cad1, cad2, cad3, cad4, cad5 };

Otra implementación es usar cadenas adjudicadas dinámicamente. Por ejemplo,

char *aa[5];

aa[0] = new char[10];
aa[1] = new char[20];
aa[2] = new char[5];
aa[3] = new char[31];
aa[4] = new char[28];
...

Obviamente hay que asignar caracteres a cada cadena guardada en 'aa'. Por
supuesto, también hay que liberar la memoria dinámicamente con 'delete[]'.


Espero que esto te ayude.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130917/34430a16/attachment.html>


Más información sobre la lista de distribución Cconclase