cadenas de caracteres

Páginas: 5 (1027 palabras) Publicado: 21 de octubre de 2015
Metodología de la Programación / Informática. Curso 2008-2009

Práctica 10. Cadenas de caracteres en C++
En el lenguaje C++ se pueden manejar cadenas de caracteres con las mismas
herramientas que ofrece el lenguaje C, es decir, como vectores de char con una
característica especial: el último elemento del vector debe ser el carácter especial ‘\0’.
Además de esta forma de trabajar con cadenas, ellenguaje C++ ofrece un tipo de dato
de más alto nivel, la clase string. Nosotros trabajaremos con cadenas de caracteres
considerándolas como vectores de char.
Como hemos dicho, trataremos las cadenas como cadenas de caracteres
terminadas en ‘\0’. La marca ‘\0’ es utilizada por el compilador como marca de final de
la cadena: al encontrar el ‘\0’, el compilador sabe que la cadena que está tratandoha
terminado. La necesidad de introducción de este carácter especial obliga a que tengamos
cuidado al declarar vectores de caracteres que vayan a almacenar cadenas. Si queremos
almacenar una cadena que tiene 10 caracteres, debemos declarar un vector de tamaño 11
para que se pueda guardar también el ‘\0’.
Es necesario observar que las cadenas son vectores de caracteres, pero que no
necesariamentetodos los vectores de caracteres son cadenas: para que un vector de
caracteres sea una cadena debe tener el carácter ‘\0’ como último elemento.
Además, C++ sí que reconoce constantes de cadena, que son los caracteres que
aparecen entre comillas dobles (“). Por ejemplo, “Hola”.
Inicialización de vectores para almacenar cadenas
Si al declarar un vector de caracteres deseamos darle un valor inicial detipo
cadena, tenemos dos posibilidades:
1. Especificar la cadena entre comillas dobles, omitiendo el ‘\0’, aunque
manteniendo el tamaño del vector como si estuviera:
char cadena[5]=”Hola”;
2. Especificar la cadena entre comillas dobles, omitiendo el ‘\0’, y sin
especificar el tamaño para el vector. El compilador tomará el tamaño
adecuado, reservando también espacio para el ‘\0’:
charcadena[]=”Hola”;
Aunque la segunda forma es la más recomendable, ya que nos evita tener que
contar los caracteres de la cadena con que estamos inicializando, la primera será
necesaria cuando queramos que el vector tenga un tamaño mayor que el de la cadena
inicial (si por ejemplo pensamos que más adelante en el programa se pueda almacenar
una cadena de más caracteres en el mismo vector).

1

Metodología de laProgramación / Informática. Curso 2008-2009

Lectura de cadenas. Funciones de C para el manejo de cadenas.
El operador cin, presenta un problema a la hora de introducir una cadena de
caracteres por teclado y es que no admite espacios en blanco ( recordar que cin utiliza
los espacios en blanco como separadores, los lee pero no los almacena). Observa el
siguiente ejemplo:
char cadena1[15], cadena2[15];cin>>cadena1;
cin>>cadena2;
Si introducimos por teclado la cadena HOLA A TODOS, tras la primera lectura
el valor de cadena será “HOLA”, es decir, que se omite todo lo que va detrás del primer
espacio en blanco. Esto es debido a que los espacios en blanco actúan como marca de
fin de cadena. En la segunda lectura, el valor que se lee para la cadena sería “A”.
Para evitar este problema, utilizaremosla función gets() para lectura.
Por ejemplo,
char cadena[20];
gets(cadena);
Notas:
- Como era de esperar, tanto cin como gets añaden el carácter de fin de cadena
‘\0’.
- Si necesitamos leer varias cadenas seguidas (por ejemplo tenemos un while en el
que se guarda cadenas), debemos utilizar la instrucción fflush(stdin), para
borrar o liberar lo que haya en el buffer del teclado antes de leercada cadena.
Por ejemplo:
char nombre[20];
while(a<=10)
{
cout<<”Introduce el nombre”< fflush(stdin);
gets(nombre);
}

-

Función strlen (string length, longitud de cadena)

Devuelve el número de caracteres de la cadena que se le pasa como parámetro
sin contar el carácter ‘\0’. Por ejemplo, strlen(“Hola”) devuelve 4.
-

Función strcpy (string copy, copia de cadena)

Excepto en el...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Cadenas de caracteres
  • Cadenas de caracteres
  • cadena de caracteres
  • cadenas de caracteres
  • Cadena De Caracteres
  • Cadenas de caracteres
  • Cadenas De Caracteres
  • Ejercicios De Cadena De Caracteres

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS