INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Enviado por 326009 • 2 de Noviembre de 2012 • 1.355 Palabras (6 Páginas) • 487 Visitas
1
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
CONTENIDOS
1. Introducción a las cadenas
2. Definición
3. Declaración de cadenas
4. Inicialización de cadenas
5. Escritura y Lectura de datos tipo cadena
6. Funciones de manipulación de cadenas
7. Arrays de cadenas
2
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Introducción:
Vamos a ver por fin cómo manejar TEXTO en C++, ya que hasta el
momento solo lo hemos mostrado por pantalla mediante la sentencia
cout y el operador de inserción <<.
C++ no tiene como otros lenguajes de programación, un tipo de datos
básico para almacenar texto, como puede ser el tipo string.
C++ utilizará ARRAYS DE CARACTERES para almacenar texto.
void main()
{
…
cout << “Esto es una cadena de texto”;
}
3
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Definición
Una cadena de texto es una secuencia de caracteres. Ejemplos de
cadenas son:
“Don Quijote de la Mancha”
“Hola Mundo”
“Apolo 13”
En C++ una cadena se considera como un array de caracteres terminado
con el carácter nulo ‘\0’.
‘A’ ‘p’ ‘o’ ‘l’ ‘o’ ‘1’ ‘3’ ‘\0’
La cadena de texto “Apolo 13” se almacena así
4
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Diferencia entre Cadenas de Texto y arrays de caracteres
La principal diferencia entre una cadena y un array de caracteres, es que
una cadena siempre termina con el carácter nulo ‘\0’ y los arrays de
caracteres no.
Como conclusión, podemos decir que
- Todas las cadenas de texto son arrays de caracteres,
- pero, no todos los arrays de caracteres almacenan cadenas.
‘A’ ‘p’ ‘o’ ‘l’ ‘o’ ‘1’ ‘3’ ‘\0’
‘A’ ‘p’ ‘o’ ‘l’ ‘o’ ‘1’ ‘3’
Array de caracteres
de tamaño 8.
Cadena de
de longitud 8.
5
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Declaración
Las cadenas de texto se declaran como se declaraban los arrays de
caracteres, indicando el tamaño máximo de la cadena + 1.
char <nombre_de_cadena> [ tamaño_máximo +1 ]; Sintaxis
char cabecera[10];
char nombre[8];
Ejemplos:
La variable cabecera puede contener una
cadena de texto de tamaño máximo 9
o un array de 10 posiciones.
Se declaran de la misma manera, por tanto
la diferencia radica en el uso que se le de a la variable
6
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Declaración
Para declarar una cadena capaz de almacenar el texto “Apolo 13”
haremos lo siguiente:
char titulo_pelicula[9];
char titulo_pelicula[10];
char titulo_pelicula[20];
char titulo_pelicula[8];
Es válido cualquiera
de las 3
7
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Inicialización
Las cadenas de caracteres no se pueden inicializar fuera de la
declaración.
Inicialización de cadenas en la declaración:
…
char cadena_texto[20] = “Hola Mundo”;
char saludo[] = “Hola” ;
...
La cadena cadena_texto
puede contener un máximo
de 19 caracteres más el
carácter nulo ‘\0’
El compilador reserva espacio para la cadena saludo.
Dado que el tamaño de hola es 4 caracteres, el compilador reserva 5
Cadena_texto = H o l a M u n d o \0
Saludo = H o l a \0
8
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Inicialización
¿Qué ocurría cuando inicializábamos solo algunas componentes de un
array de caracteres como cadena de texto?
Si se trata de inicializar la cadena en el cuerpo del programa de la
siguiente manera, nos dará un error de compilación.
Más adelante veremos que para realizar ésta acción necesitamos recurrir
a funciones de cadena (string.h).
…
cadena_texto = “Hola Mundo”;
...
Error !!
El compilador no inicializa el resto de elementos con el carácter nulo ‘\0’
Cadena_texto = H o l a M u n d o \0
9
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Ejemplos de Inicialización
…
char cad_uno[20] = “Hola Mundo”;
char cad_dos[20] = {‘H’,’o’,’l’,’a’,’ ‘,’M’,’u’,’n’,’d’,’o’ };
char cad_tres[20] = { “Hola Mundo”};
...
char saludo_uno[] = “Hola” ;
char saludo_dos[] = { “Hola”} ;
...
char saludo_tres[] = {‘H’, ‘o’, ‘l’, ‘a’};
...
saludo_uno = saludo_dos = H o l a \0
saludo_tres = H o l a
cad_uno = cad_tres =
H o l a M u n d o \0
…
char nombre[4] = “Luis”;
...
L u i s
No podemos tratarlo como
una cadena. Sí como un array
de caracteres.
10
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Escritura de cadenas
Para escribir el contenido de una variable de tipo cadena en consola,
utilizamos la sentencia de escritura cout con el operador de inserción <<.
cout escribe todos los caracteres
desde la posición 0 en adelante, hasta
que se encuentre el carácter nulo ‘\0’
char cad_uno[20] = “Hola Mundo”;
char nombre[4] = “Luis”;
…
cout << cad_uno;
cout << nombre;
cad_uno = H o l a M u n d o \0
… L u i s 6 9 g r t \0 v …
nombre =
En consola aparece: “Hola Mundo”
En consola aparece:
“Luis69grt”
11
INTRODUCCIÓN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Lectura de cadenas
La sentencia de lectura cin con el operador de extracción >> produce
anomalías si se aplica a una variable de tipo cadena.
…
char nombre[20] ;
…
cin >> nombre;
...