Cadenas
Enviado por masterdiego90 • 3 de Septiembre de 2012 • Informe • 1.377 Palabras (6 Páginas) • 327 Visitas
CADENAS DE CARACTERES
Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena) de caracteres, como en bases de datos con nombres de personas, instituciones, etc. Una cadena de caracteres podría verse como un conjunto de caracteres (numero, letras, símbolos de código ascii) ordenados.
Aunque no se había visto de esa manera, todos los mensajes que enviamos a pantalla entre comillas usando la instrucción cout son en realidad cadenas de caracteres. Por ejemplo, la sentencia:
cout<<”Hola a todos ”;
permite que se muestra en pantalla el conjunto de caracteres H, o, l, a, espacio, a, espacio, t, o, d, o, s, espacio.
Obviamente, el procesador de la computadora no sabe nada acerca del idioma español, por lo que el procesador simplemente muestra los caracteres anteriores en el orden que se le indica.
En C++, como en casi cualquier otro lenguaje de programación, es posible utilizar variables para almacenar y manipular cadenas de caracteres. La forma de hacer esto es a través de arreglos. Por ejemplo, la siguiente es la declaración de una variable (llamada nombre) que permite guardar una cadena de 19 caracteres:
char nombre[20];
Observe que se dijo que dicho arreglo, aunque tiene 20 elementos, puede contener una cadena de sólo 19 caracteres. Esto es debido a que las cadenas de caracteres se manejan muy parecido, pero no exactamente igual a un arreglo simple de caracteres. La diferencia es que, en una cadena de caracteres, al final de la cadena, el procesador automáticamente coloca un caracter especial conocido como el caracter nulo y representado por el símbolo ‘\0’. De esta forma, el procesador puede usar sólo 19 elementos del arreglo para los caracteres y usará el último elemento para el caracter nulo.
Algo que no se ha mencionado, todos los elementos de cualquier arreglo de un programa se almacenan en memoria en forma contigua. Por ejemplo, el arreglo nombre[20] que se declaró arriba se almacenaría en la memoria de la computadora de la siguiente forma:
Esta característica de los arreglos es muy importante cuando se manejan cadenas de caracteres. Así, cuando se usa un arreglo para almacenar una cadena de caracteres, dichos caracteres se almacenan en orden en cada uno de los elementos del arreglos. Por ejemplo, si la cadena es “Hola”, esta cadena se almacenaría en un arreglo de 10 elementos de la siguiente forma:
Observe que, luego de los elementos del arreglo que guardan los caracteres de la cadena que se tiene, viene un elemento que almacena al caracter nulo y el resto de los elementos (5) no son utilizados y no almacenan ningún valor. Para que se observe la diferencia, un arreglo simple de caracteres (no una cadena), sería almacenada como:
sin utilizar el caracter nulo al final de los caracteres del arreglo.
DECLARACIÓN DE CADENAS DE CARACTERES
Declaración de Arreglos para Almacenar Cadenas de Caracteres
Para declarar un arreglo que sirva para guardar una cadena de caracteres, se utiliza la siguiente sintaxis:
char nombre_del_arreglo[numero_máximo_de_caracteres + 1];
Vea que es la misma sintaxis que se usa para declarar cualquier arreglo de caracteres pero, para determinar el tamaño del arreglo, simplemente hay que tomar en cuenta el tamaño máximo posible de la cadena y sumarle 1 (debido a que se necesita el carater nulo al final).
INICIALIZACIÓN DE CADENAS DE CARACTERES
La inicialización de un arreglo que contenga una cadena de caracteres se realiza generalmente al momento de declararlo, como en el caso siguiente:
char nombre_del_arreglo[numero_máximo_de_caracteres + 1]=”cadena”;
o bien
char nombre_del_arreglo[numero_máximo_de_caracteres+1]={”cadena”};
Por ejemplo:
char nombre[10]={”Juan”};
char nombre[10]=”Pedro”;
Nota importante: Si uno usa la siguiente inicialización (como se hizo anteriormente para arreglos simples):
char nombre[10]={‘J’, ‘u’, ‘a’, ‘n’};
El resultado no es una cadena de caracteres, pues este tipo de inicialización no añade el caracter nulo al final, por lo que el resultado de dicha inicialización es una arreglo simple de caracteres.
FUNCIONES PARA MANIPULAR CADENAS DE CARACTERES
Asignación de Cadenas de Caracteres
Este y el siguiente son temas que debieran de verse como una excepción a los que se ha discutido anteriormente durante el curso. Para asignar un valor a una cadena de caracteres luego de declararlo, no se utiliza el símbolo de igual. Es decir, la asignación:
char nombre[20];
nombre = “Juan”;
es incorrecta. Para hacer
...