10.1 CADENASDE CARACTERES
Cadenas de caracteresLas cadenas de caracteres son vectores de tipo carácter (char) quereciben un tratamiento especial par...
En C pueden definirse constantes correspondientes a cadenas decaracteres. Se usan comillas dobles para delimitar el princi...
Como en toda tabla, puede asignarse cada carácter de la cadenaindividualmente. No deberá olvidarse en ningún caso que el ú...
La inicialización de una cadena de caracteres durante la declaraciónpuede hacerse del mismo modo que en los vectores, aunq...
La cadena vacíaOtra curiosidad de las cadenas de caracteres se refiere a la cadenavacía, "" , que consta únicamentedel car...
Manejo de cadenas de caracteresAunque C no incorpora en su definición operadores para el manejo decadenas de caracteres, t...
El siguiente programa utiliza funciones de cadena de la biblioteca.#include <iostream.h>#include <string.h> //contiene los...
Ejercicios¿Dónde está el error en el siguiente programa?int main(){int vector [10];int x = 1;for (x= 1; x<= 10; x++)vector...
Upcoming SlideShare
Loading in …5
×

Pe15 cadenacaracteres

335 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
335
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pe15 cadenacaracteres

  1. 1. 10.1 CADENASDE CARACTERES
  2. 2. Cadenas de caracteresLas cadenas de caracteres son vectores de tipo carácter (char) quereciben un tratamiento especial para simular el tipo de datos“string”, presente en otros lenguajes de programación.Para que un vector de caracteres pueda ser considerado como unacadena de caracteres, el último de los elementos útiles del vectordebe ser el carácter nulo (código ASCII 0). Según esto, si se quieredeclarar una cadena formada por N caracteres, deberá declararseun vector con N + 1 elementos de tipo carácter. Por ejemplo, la declaración char cadena[6];reserva suficiente espacio en memoria para almacenar una cadenade 5 caracteres, como la palabra "casco": 0 1 2 3 4 5 C A S C O 0
  3. 3. En C pueden definirse constantes correspondientes a cadenas decaracteres. Se usan comillas dobles para delimitar el principio y elfinal de la cadena, a diferencia de las comillas simples empleadascon las constantes de tipo carácter.Por ejemplo, la cadena constante "H" tiene muy poco que ver con elcarácter constante ’H’, si observamos la representación interna deambos: “H” H 0 ‘H’ H
  4. 4. Como en toda tabla, puede asignarse cada carácter de la cadenaindividualmente. No deberá olvidarse en ningún caso que el últimocarácter válido de la misma debe ser el carácter nulo (’0’). El siguiente ejemplo inicializa la cadena de caracteres cadena con lapalabra "casco". Nótese que las tres últimas posiciones del vector no sehan usado. Es más, aunque se les hubiese asignado algún carácter, sucontenido sería ignorado. Esto es, el contenido del vector en lasposiciones posteriores al carácter nulo es ignorado.char cadena[10];...cadena[0] = ’c’;cadena[1] = ’a’;cadena[2] = ’s’;cadena[3] = ’c’;cadena[4] = ’o’;cadena[5] = ’n0’;
  5. 5. La inicialización de una cadena de caracteres durante la declaraciónpuede hacerse del mismo modo que en los vectores, aunque nodebe olvidarse incluir el carácter nulo al final de la cadena. Sinembargo, existe un método de inicialización propio de las cadena decaracteres, cuyo formato general es: char nombre [tamaño] = "cadena";Usando este tipo de inicialización, el carácter nulo es añadidoautomáticamente al final de la cadena.Así pues, una inicialización típica de vectores como la siguiente:char nombre[10] = { ’N’, ’U’, ’R’, ’I’, ’A’, ’0’ };puede hacerse también de forma equivalente como:char nombre[10] = "NURIA"; óchar nombre[] = "NURIA";
  6. 6. La cadena vacíaOtra curiosidad de las cadenas de caracteres se refiere a la cadenavacía, "" , que consta únicamentedel carácter nulo. Puesto que los caracteres posteriores al carácternulo son ignorados, convertir unacadena con cualquier valor almacenado a la cadena vacía es tansimple como asignar el carácter nulo ala posición 0 de dicha cadena. He aquí un ejemplo:char cadena [12] = "Una frase";...cadena[0] = ’0’; /* Ahora es una cadena vacía */ 0 1 2 3 4 5 6 7 8 9 10 “una frase” u n a f r a s e 0 0 1 2 3 4 5 6 7 8 9 10 “” 0 n a f r a s e 0
  7. 7. Manejo de cadenas de caracteresAunque C no incorpora en su definición operadores para el manejo decadenas de caracteres, todo compilador de C proporciona una libreríaestándar (string.h) con funciones para facilitar su utilización.Destacar algunas de ellas: strlen .-para obtener la longitud de la cadena, sin contar el carácter nulo. strcpy.- para copiar una cadena en otra, strcat.- para concatenar dos cadenas, strcmp.- para comparar dos cadenas, etc.La librería estándar de entrada y salida (stdio.h) proporciona ademáslas funciones gets y puts, que permiten leer de teclado y mostrar porpantalla una cadena de caracteres completa, respectivamente
  8. 8. El siguiente programa utiliza funciones de cadena de la biblioteca.#include <iostream.h>#include <string.h> //contiene los prototipos de funcionesInt main(){ char titulo[]=“c++ orale”; char leccion[]=“que son las cadenas de caracteres”; printf(“MAYUSCULAS: %s”,strupper(titulo)); printf(“minusculas: %s”,strlower(titulo));return 0;}
  9. 9. Ejercicios¿Dónde está el error en el siguiente programa?int main(){int vector [10];int x = 1;for (x= 1; x<= 10; x++)vector[x] = 23;}2. Escribir un programa que lea del teclado un vector de 10 númerosenteros, lo invierta y finalmente lo muestre de nuevo.3. Escribir un programa que cuente el número de palabras de más decuatro caracteres en una frase. ésta se almacena en forma de vectorcuyo último elemento es el carácter ’.’.4. Escribir un programa que lea del teclado dos números enteros dehasta 20 dígitos y los sume. Usar vectores para almacenar los dígitosde cada número.

×