Cadena Juan Bastidas

Post on 30-Nov-2014

1.318 views 0 download

description

 

Transcript of Cadena Juan Bastidas

ESCUELA POLITECNICA DEL EJERCITO

PROGRAMACIÓN II

Tema: CADENA DE CARACTERES

• NOMBRE: JUAN BASTIDAS• PARALELO: TERCERO “A” “SISTEMAS”

CADENA

Una cadena se considera como un array unidimensional de tipo char, es un tipo de dato compuesto, terminado por un carácter nulo ('\0'), NULL .

Cadenas es un arreglo de caracteres que:Puede incluir letras, dígitos, etc.Tiene un puntero al primer elemento.Cuyo valor de la cadena es la dirección de memoria del primer elemento.

PARA MANIPULAR CADENAS SE UTILIZA LA CABECERA

< s t r i n g . h>

¿CUÁL ES LA DIFERENCIA DE LA CADENA CON UN ARRAY DE CARACTERES ?

Una cadena de caracteres no es más que un arreglo de valores de tipo char, pero con la diferencia de que el último valor del arreglo tendrá el valor del CARACTER NULO ‘\0', indicando el fin del string.

a) Arreglo de caracteres

b) Cadena de caracteres CARACTER NULO

Ejemplo : " ABC "

• Cuando la cadena aparece dentro de un programa se verá como si se almacenarán cuatro elementos: ‘A’, ’B’, ’C’ y ‘ \ 0 ‘

• Y esto demuestra que “ABC” es un arreglo de cuatro elementos tipo char

El numero total de caracteres de una cadena es siempre igual a la longitud de la cadena + 1

Aplicando el operador * a un puntero a char se obtiene el carácter que forma su contenido; es posible también utilizar aritmética de direcciones con cadenas:

Ejemplo:

• * "ABC " es igual a ' A '• * ( "ABC" + 1) es igual a ' B '• * ("ABC" + 2 ) es igual a ' C '• * ( "ABC" + 3 ) es igual a ' \ 0 '

1. El tipo de dato, naturalmente, es char.2. El nombre que deseamos dar a la cadena.3. El operador postfijo [ ] contiene el tamaño máximo del objeto.

Ejemplo:

• char texto [ 81]; / * una línea de caracteres de texto * /• char orden [4 O] ; / * cadena utilizada para recibir una orden del

DECLARACIÓN DE VARIABLES DE CADENA

char nombre_del_arreglo [numero_máximo_de_caracteres ]+

Se le suma 1 debido a que se necesita el

caracter nulo al final

INICIALIZACIÓN DE VARIABLES DE CADENA

Todos los tipos de arrays requieren una inicialización (iniciación) que consiste en una lista de valores separados por comas y encerrados entre llaves.

Ej:• char texto[81] = " Esto es una cadena.";• char cadena[ ] = "¿Cuál es la longitud de esta cadena?";• char cadena[ ] = "Hola"; • char cadena[ ] = {'H','o','l','a',0}; • char cadena[ ] = {'H','o','l','a','\0'};

Durante la inicialización, se reserva automáticamente el número de bytes necesarios para la cadena, esto es, el número de caracteres más uno.

Ej:

Ejemplo:

Las cadenas terminan con el carácter nulo. Así en el siguiente programa se muestra que el carácter NULL ( ' \ 0 ')se añade a la cadena:

• #include <stdio.h>• void main( )• {• char S[ ]= "ABCD";• for (int i = 0; i < 5; i++)• printf ( "S [%d] = %c \n" , i , S [ i ] ) ;• return 0;• }• Ejecución• S [0] = A• S[1] = B• S[2] = C• S [3] = D• S [4] =

Comentario: Cuando el carácter NULL se imprime, no se escribe nada.

LECTURA Y ESCRITURA DE CADENAS DE CARACTERES

Sin el & ¡cadena es una dirección!

LECTURAscanf ("%s", cadena); // gets (cadena);

ESCRITURAprintf ("%s", cadena);// puts (cadena);

LECTURAscanf ("%s", cadena); // gets (cadena);

ESCRITURAprintf ("%s", cadena);// puts (cadena);

Diferencia entre scanf y gets:

• Scanf = lee 1 palabra• Gets = lee cadena completa hasta '\n'

Ejemplo:

• #include <stdio.h>• void main(){• char nombre [30] ; / * Define array de caracteres * /

• scanf ("%s", nombre) ; / * Leer la cadena * /

• printf ( "%s \n" , nombre) ; /* Escribir la cadena nombre */

}