Professional Documents
Culture Documents
Ctedra de Programacin Departamento de Computacin Escuela de Ingeniera de Sistemas Facultad de Ingeniera Original Prof. Flor Narciso
Mayo 2004
Cadena de Caracteres
z Secuencia de caracteres definida en un alfabeto
z hola, casa, perro, y67Frabe \#
z Estructura de almacenamiento
{ Un byte (8 bits) por cada caracter de la cadena almacenados en bytes contiguos en memoria
z Operaciones
{ longitud(cadena): Entero, regresa la longitud actual de la cadena
z lon(casa) regresa 4
Cadenas de caracteres
{subcadena(cadena, inicio, longitud): cadena, regresa la subcadena de cadena que comienza en inicio y que tiene la longitud especificada
z subcadena(casablanca, 3, 2) regresa sa
{indice(cadena1, cadena2): Entero, regresa la posicin de inicio de la primera ocurrencia de cadena2 en cadena1
z indice(casablanca, a) regresa 2
{Las comparaciones (<, >, =, , , ) se efectan segn el orden lexicogrfico dado por el cdigo ASCII
Mayo 2004 Ctedra de Programacin. Programacin 1. 3
1 2 d e M a y o \0
0
Mayo 2004
10
4
Carcter nulo
1 2 d e M a y o \0
0 1 2 3 4 5 6 7 8 9 10
Cadena de caracteres
Mayo 2004 Ctedra de Programacin. Programacin 1. 5
M e r i d a \0
0 1 2 3 4 5 6
6
Mayo 2004
donde dim = nro. de caracteres de la cadena + 1 Ejemplos: Cadena linea[81] Cadena color[10]
Mayo 2004
Mayo 2004
Mayo 2004
10
Mayo 2004
11
Mayo 2004
12
Mayo 2004
13
Mayo 2004
14
Mayo 2004
Mayo 2004
17
temp = cad[elem];
Mayo 2004
20
Ejercicios
1. Escribir un programa en C++ que lea una lnea de texto, la almacene en un vector y la escriba al revs. La longitud de la lnea no ser especificada (terminar al pulsar la tecla Enter), pero se supone que no exceder de 80 caracteres. Escribir la declaracin de las siguientes variables: - Una variable cadena cad con un mximo de 20 caracteres. - La misma variable cad iniciada con el valor Sevilla. - Dos variables nombre y apellido de tipo Cadena. - Un vector nombres de tipo Tabcad. - Un vectpr meses iniciado con los nombres de los doce meses del ao. - Un vector dias_semana iniciado con los nombres de los siete das de la semana.
2.
Mayo 2004
22
Ejercicios
3. Escribir una funcin logico busca_caracter(Cadena cad, char c) que busque un carcter c en una cadena cad, devolviendo un valor lgico Cierto si lo encuentra y Falso en caso contrario. Escribir una funcin int busca_caracter(Cadena cad, char c) que cuente el nmero de apariciones de un carcter c en una cadena cad, devolvindolo como resultado. Escribir una funcin que reciba como parmetro una cadena de caracteres y elimine los espacios en blanco del final de la cadena.
4.
5.
Mayo 2004
23
Ejercicios
6. Escribir un procedimiento void dia_semana(int dia, Cadena nomdia) que reciba como parmetro de entrada un nmero del 1 al 7 que representa el da de la semana (1=lunes, 2=martes, 3=miercoles, 4=jueves, 5=viernes, 6=sabado, 7=domingo) y devuelva en la cadena nomdia el nombre de dicho da. Utilice una tabla dias_semana. Escribir un procedimiento que lea una palabra de hasta 20 caracteres y la escriba como se ve en la figura: Entrada: HOLA Salida: HOLA O L L O ALOH
Ctedra de Programacin. Programacin 1. 24
7.
Mayo 2004