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’.
1. Que diferencia existe entre Cadena de caracteres y Arreglo 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.
2. Como se declara una Cadena de caracteres y un arreglo de caracteres ?
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
3. Como se hace la lectura de la Cadena de caracteres ?
C++ dispone de funciones específicas que en unión con cin, permite la
lectura correcta de cadenas.
cin.getline: cadena × tamaño × carácter → void
Sirve para leer una línea completa incluyendo espacios en blanco.
- cadena: nombre de la variable donde queremos guardar la cadena.
- tamaño: nº máximo de caracteres que se leerán. El tamaño deber como mucho
la longitud que aparece en la declaración de la cadena.
- carácter: se leerán caracteres hasta que se encuentre el carácter aquí
especificado. Si no se pone, el compilador supone que es ‘\n’.
4. Como se compara 2 Cadenas de caracteres y realice ejemplos.
C++ dispone de la biblioteca de cadena string.h. Dicha biblioteca contiene
funciones de manipulación de cadenas. Veamos algunas de ellas:
Devuelve la longitud de la cadena dada como argumento.
char nombre[30], dato[30] ;
int tamaño;
…
gets(nombre);
...
tamaño = strlen(nombre);
strcpy(dato, nombre);
...
strlen: cadena → int string.h
Si se introduce el texto “Hola Mundo”,
la variable tamaño toma el valor 10.
Copia la cadena_origen en la cadena_destino.
strcpy: cadena_destino × cadena_origen → void string.h
Cadenas de Texto: Manipulación de cadenas
Esta función compara sus dos argumentos que son de tipo cadena y devuelve un
entero.
char nombre[30] = “Antonio”, apellido[30]=“Nebrija” ;
int b;
….
b = strcmp(nombre,apellido); // devuelve un número negativo
strcat(nombre, apellido);
...
strcmp: cadena1 × cadena2 → int string.h
strcat: cadena_destino × cadena_origen → void string.h
strcmp(c1, c2) devuelve 0 si c1 = c2
strcmp(c1, c2) devuelve un número negativo si c1 < c2
strcmp(c1, c2) devuelve un número positivo si c1 > c2
Esta función concatena la cadena fuente a continuación de la cadena destino.
No hay comentarios:
Publicar un comentario