Práctico n° 7

Anuncio
Programador Universitario
Facultad de Ciencias Exactas y Tecnología - UNT
Licenciatura en Informática
PROGRAMACION
Trabajo Práctico 7
29/OCT/10
TEMAS: Arreglos de caracteres: Cadenas
Un repaso
En la mayoría de los lenguajes de programación existe un tipo estándar de dato que es la hilera o cadena de
caracteres: string.
Un carácter es la representación de una letra, número o símbolo que se guarda internamente de acuerdo a su
representación determinada por el código ASCII. Cuando se trabaja con el tipo string, se tienen n caracteres tratados
como una unidad.
El lenguaje C carece de este tipo de dato estándar. En su reemplazo, se define la cadena. Una cadena puede incluir:
letras, dígitos y símbolos especiales y termina con el carácter NULL (nulo) que indica su final. Dentro de un
programa, el carácter NULL se representa por la secuencia de escape “\0” . (La barra invertida es ALT 92).
Para cada uno de los problemas propuestos escriba primero una solución algorítmica estructurada. Recuerde
que con esta disciplina de trabajo, Ud. aprende a escribir programa estructurados.
A trabajar
Cad1. Escriba un programa que lea una línea de texto de la entrada estándar con la función gets, la almacene en
un arreglo de caracteres de nombre cad [100] y cuente y extraiga de la línea las letras mayúsculas y minúsculas,
modificando el arreglo cad. ¡Use funciones definidas por el usuario !
Cad2. Escriba un programa que introduzca 4 cadenas que representen enteros, convierta las cadenas a enteros,
sume los valores e imprima el total de la suma. ¡Use funciones definidas por el usuario !
Cad3. Escriba un programa que introduzca un número telefónico como cadena. El número puede ser el de un
celular o de un teléfono fijo, con el código de área como prefijo. Por ejemplo: 381 436 4093 (TE fijo) ò 381 487 5366
(TE mòvil ). El programa deberá extraer el código de área como un token, los tres primeros dígitos del número como
token y los últimos cuatro dígitos del número como token. Los siete dígitos de número deberán ser concatenados en
una cadena.
El programa deberá convertir el número de área a int y convertir la cadena del número telefónico a long.
Tanto el código de área como el número telefónico deberá ser impreso. ¡Use funciones definidas por el usuario !
Y ahora un avance sobre punteros…
Para la realización de esta parte del trabajo práctico le proponemos que haga un seguimiento ordenado del mismo
y que siga las consignas indicadas.
Punt1. En el código del Ejercicio Cad1, declare en forma local a main una variable puntero punt, que apunte a un
objeto de tipo char.
Punt2. Asigne la dirección inicial del arreglo cad a la variable puntero punt. Haga esta tarea de dos maneras
distintas.
Punt3. Muestre en pantalla la dirección de la variable puntero punt. Use el indicador de formato apropiado.
Muestre también la dirección de la primera componente del arreglo cad. Acceda a la misma de forma
indirecta, o sea, a través de la dirección.
Punt4. Muestre en pantalla el contenido de la quinta celda del arreglo cad. Refiérase a ella utilizando: notación de
subíndice de arreglo, notación de puntero con desplazamiento con el puntero punt y notación de subíndice
de puntero con el puntero punt.
Punt5. Suponiendo que punt apunta al principio del arreglo cad, ¿cuál es la dirección referenciada por
punt+3? ¿Cuál es el valor almacenado en esa dirección?
Punt6. Escriba las instrucciones necesarias para visualizar en la pantalla cada uno de las componentes del
vector cad, utilizando notación de punteros con el puntero punt.
Punt7. Muestre en pantalla los elementos del arreglo cad, mediante subíndices del puntero punt.
Se recomienda la lectura de los capítulos de los libros indicados a continuación:
Del libro Como programar en C y C++, de Deitel & Deitel, Capítulo 6: Arreglos.
Del libro Como programar en C y C++, de Deitel & Deitel, Capítulo 8: Caracteres y Cadenas.
29/oct/2010
Página 1 de 2
Programador Universitario
Facultad de Ciencias Exactas y Tecnología - UNT
Licenciatura en Informática
PROGRAMACION
Trabajo Práctico 7
29/OCT/10
Del libro El lenguaje de programación C, de B Kernighan y D. Ritchie, Capítulo 1, Sección 1.6: Arreglos.
Del libro C, Manual de Referencia, de H. Schildt, Capítulo 4: Arreglos y Cadenas.
Todos estos libros se encuentran en la biblioteca de la FACET.
NOTA: Se sugiere la reescritura de todos los ejercicios de cadena usando notación de punteros como
ejercitación adicional.
Funciones para cadenas
En la siguiente tabla de prototipos de funciones del archivo de cabecera <string.h>, las variables cad1 y
cad2 son arreglos de caracteres (cadenas).
Función
Descripción
int strlen(cad1)
retorna la longitud de cad1
int strcmp(cad1, cad2)
Compara cad1 con cad2. La comparación se hace carácter a carácter.
SI (cad1[i] < cad2 [i] ) ENTONCES
Retorna < 0
SI (cad1[i] = cad2 [i] ) ENTONCES
Retorna 0
SI (cad1[i] > cad2 [i] ) ENTONCES
Retorna > 0
int strncmp(cad1,cad2,n)
Compara hasta n caracteres de la cad1 con cad2 sin diferenciar
mayúsculas de minúsculas.
SI (cad1[i] < cad2 [i] ) ENTONCES
Retorna < 0
SI (cad1[i] = cad2 [i] ) ENTONCES
Retorna 0
SI (cad1[i] > cad2 [i] ) ENTONCES
Retorna > 0
char *strcpy(cad1, cad2)
Copia la cad2 a cad1, incluyendo el terminador “\0”. Retorna cad1.
char *strncpy(cad1, cad2,n)
Copia hasta n caracteres de la cad2 a cad1. Retorna cad1. Rellena con
“\0” si cad2 atiene menos de n caracteres.
char *strcat(cad1, cad2)
Concatena la cad2 al final de cad1. Retorna cad1.
29/oct/2010
Página 2 de 2
Descargar