5.4.- Asignación de Valores Iniciales a Cadenas


Cuando se tiene un arreglo de cadenas de caracteres, se puede utilizar la forma compacta mostrada en la sección anterior, sólo que , en lugar de constantes numéricas manejaríamos constantes de cadena.

Por Ejemplo:

char nombres[][5] = { "HUGO", "PACO", "LUIS" } ;

es equivalente a: 
char nombres[3][5];

           nombres[0] = "HUGO" ;
           nombres[1] = "PACO" ;
           nombres[2] = "LUIS" ;

Esto también puede manejarse a nivel de caracteres, así :

char nombres[][5] = { 'H','U','G','O','\0',
                     'P','A','C','O','\0',
                     'L','U','I','S','\0' };

o así:

char nombres[3][5];

           nombres[0][0] = 'H' ;
           nombres[0][1] = 'U' ;
           nombres[0][2] = 'G' ;
           nombres[0][3] = 'O' ;
           nombres[0][4] = '\0' ;
           nombres[1][0] = 'P' ; 
           nombres[1][1] = 'A' ; 
           nombres[1][2] = 'C' ; 
           nombres[1][3] = 'O' ; 
           nombres[1][4] = '\0' ; 

           nombres[2][0] = 'L' ;  
           nombres[2][1] = 'U' ;  
           nombres[2][2] = 'I' ;    
           nombres[2][3] = 'S' ;   
           nombres[2][4] = '\0' ;  
    

En los listados 5.3 y 5.4 se muestran las dos primeras formas, observándose que se obtiene el mismo resultado.

  #include <iostream.h> 
  #include <conio.h>

  void main()
  {
     char nombres[][5] = { "HUGO","PACO","LUIS" };
     int calif[] = { 100, 90, 100 };
     clrscr();
     for( int x=0 ; x < 3;x++)
       {
         gotoxy(35,x+10);
         cout nombres[x];
         gotoxy(40,x+10); 
         cout << calif[x]; 
       }
   }

Listado 5.3.- Manejo de arreglos de cadenas.

  #include <iostream.h>
  #include <conio.h>

  void main()
  { 
     char nombres[][5] = { 'H','U','G','O','\0', 
                            'P','A','C','O','\0',
                            'L','U','I','S','\0' };
     int calif[] = { 100, 90, 100 };
     clrscr();
     for( int x=0 ; x< 3;x++)
       {  
          gotoxy(35,x+10); 
          cout nombres[x]; 
          gotoxy(40,x+10); 
          cout << calif[x]; 
       }
   }

Listado 5.4.- Manejo de arreglos bidimensionales de caracteres.

En los listados 5.3 y 5.4, se muestra que no es necesario escribir el valor de la primera dimensión de los arreglos cuando, en su declaración, se asignan valores constantes a los elementos.

La ventaja que tiene la forma mostrada en 5.3 y 5.4 es que, al no especificar una de las dimensiones, la cantidad de cadenas a manejar puede variarse con sólo agregarlas a la lista o eliminarlas de ella.

Página anterior Página siguiente