cadena juan bastidas

10
ESCUELA POLITECNICA DEL EJERCITO PROGRAMACIÓN II Tema: CADENA DE CARACTERES • NOMBRE: JUAN BASTIDAS • PARALELO: TERCERO “A” “SISTEMAS”

Upload: juan-bastidas

Post on 30-Nov-2014

1.318 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Cadena Juan Bastidas

ESCUELA POLITECNICA DEL EJERCITO

PROGRAMACIÓN II

Tema: CADENA DE CARACTERES

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

Page 2: Cadena Juan Bastidas

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>

Page 3: Cadena Juan Bastidas

¿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

Page 4: Cadena Juan Bastidas

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

Page 5: Cadena Juan Bastidas

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 '

Page 6: Cadena Juan Bastidas

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

Page 7: Cadena Juan Bastidas

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:

Page 8: Cadena Juan Bastidas

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.

Page 9: Cadena Juan Bastidas

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'

Page 10: Cadena Juan Bastidas

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 */

}