Curso de C++ (Página 8)

pagina007 Principal pagina009a

CAPITULO 8 Cadenas de caracteres

Antes de entrar en el tema de los "arrays" también conocidos como arreglos, tablas o matrices, veremos un caso especial de ellos. Se trata de las cadenas de caracteres o "strings".

Una cadena en C es un conjunto de caracteres, o valores de tipo "char", terminados con el carácter nulo, es decir el valor numérico 0. Internamente se almacenan en posiciones consecutivas de memoria. Este tipo de estructuras recibe un tratamiento especial, y es de gran utilidad y de uso continuo.

La manera de definir una cadena es la siguiente:

char <identificador> [<longitud máxima> ];

En este caso los corchetes no indican un valor opcional, sino que son realmente corchetes, por eso están en negrita.

Cuando se declara una cadena hay que tener en cuenta que tendremos que reservar una posición para almacenar el carácter nulo, de modo que si queremos almacenar la cadena "HOLA", tendremos que declarar la cadena como:

char Saludo[5]; 

Cuatro caracteres para "HOLA" y uno extra para el carácter '\000'.

También nos será posible hacer referencia a cada uno de los caracteres individuales que componen la cadena, simplemente indicando la posición. Por ejemplo el tercer carácter de nuestra cadena de ejemplo será la 'L', podemos hacer referencia a él como Saludo[2]. Los índices tomarán valores empezando en el cero, así el primer carácter de nuestra cadena sería Saludo[0], que es la 'H'.

Una cadena puede almacenar informaciones como nombres de personas, mensajes de error, números de teléfono, etc.

La asignación directa sólo está permitida cuando se hace junto con la declaración. Por ejemplo:

char Saludo[5]; 
Saludo = "HOLA" 

Aunque no produzca un error en el compilador, no está haciendo lo que nosotros probablemente pretendemos, como veremos en el capítulo de "arrays" o arreglos.

La manera correcta de asignar una cadena es:

char Saludo[5]; 
Saludo[0] = 'H'; 
Saludo[1] = 'O'; 
Saludo[2] = 'L'; 
Saludo[3] = 'A'; 
Saludo[4] = '/000'; 

O bien:

char Saludo[5] = "HOLA"; 

Si te parece un sistema engorroso, no te preocupes, en próximos capítulos veremos funciones que facilitarán la asignación de cadenas. Existen muchas funciones para el tratamiento de cadenas, como veremos más adelante, que permiten compararlas, copiarlas, calcular su longitud, imprimirlas, visualizarlas, guardarlas en disco, etc. Además, frecuentemente nos encontraremos a nosotros mismos creando nuevas funciones que básicamente hacen un tratamiento de cadenas.


pagina007 Principal pagina009a