Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Acti 8
Acti 8
1. Introduccin a las cadenas 2. Definicin 3. Declaracin de cadenas 4. Inicializacin de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulacin de cadenas 7. Arrays de cadenas
1
C++ no tiene como otros lenguajes de programacin, un tipo de datos bsico para almacenar texto, como puede ser el tipo string. C++ utilizar ARRAYS DE CARACTERES para almacenar texto.
2
INTRODUCCIN 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 carcter nulo \0 y los arrays de caracteres no. Como conclusin, 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 Cadena de de longitud 8. Array de caracteres de tamao 8.
A p o l o
4
1 3
Ejemplos:
char cabecera[10]; char nombre[8];
La variable cabecera puede contener una cadena de texto de tamao mximo 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
5
char titulo_pelicula[10];
El compilador reserva espacio para la cadena saludo. Dado que el tamao de hola es 4 caracteres, el compilador reserva 5
Cadena_texto = H o l Saludo = H o l
7
M u n d o \0
a \0
Si se trata de inicializar la cadena en el cuerpo del programa de la siguiente manera, nos dar un error de compilacin.
cadena_texto = Hola Mundo; ...
Erro r
!!
Ms adelante veremos que para realizar sta accin necesitamos recurrir a funciones de cadena (string.h).
8
de caracteres.
cad_uno = cad_tres =
H o l a M u n d o \0
H o l a \0
cad_uno = H o l
L
s 6 9 g r
t \0 v
nombre
Esto es porque cin termina la operacin de lectura cuando se encuentra un espacio en blanco.
Si el usuario introduce la entrada Antonio de Nebrija, la variable nombre contiene la siguiente informacin:
A n t o n i o \0
iostream.h
\0
Sirve para leer carcter a carcter el flujo de entrada. La funcin cin.get(letra) lee un carcter y lo guarda en letra. Devuelve 0 si el carcter ledo es final de archivo. En otro caso devuelve 1.
char letra ; bool fin; fin = cin.get( letra ); if (fin == 0) cout << "fin de archivo"; ...
cin.ignore() Sirve para leer uno o ms caracteres sin procesar del flujo de entrada.
13
Sirve para leer una lnea desde el archivo de entrada. Lee hasta que encuentra un salto de lnea. Se llama a sta funcin con el nombre de la variable donde queremos guardar la cadena leda.
nombre =
14
Sirve para leer un carcter del flujo de entrada sin que aparezca en pantalla. Se la llama sin argumentos y devuelve un entero.
char letra ; letra = getch(); if (letra == S) cout << Ha elegido seguir"; ...
getchar : void int Sirve para leer el siguiente carcter del flujo de entrada. Se la llama sin argumentos y devuelve un entero.
15
stdio.h
Ejemplo
Las funciones getch y getchar estn especializadas en la captura de un solo carcter. La diferencia es que getchar lee un carcter y lo imprime en pantalla. Sin embargo getch, lo lee pero no lo imprime en pantalla. Se utilizan para: - lectura de un solo carcter - retener pantallas.
string.h
string.h
Esta funcin compara sus dos argumentos que son de tipo cadena y devuelve un entero. strcmp(c1, c2) devuelve 0 si c1 = c2 strcmp(c1, c2) devuelve un nmero negativo si c1 < c2 strcmp(c1, c2) devuelve un nmero positivo si c1 > c2 string.h
lista =
vector =
1 2
..
29
lista =
...
19
0 1
A n a \0 P e p e \0
...
19