miércoles, 16 de mayo de 2012

Cadena de Caracteres en C++

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