Está en la página 1de 25

TALLER-07: CADENAS Y

ARREGLO DE CADENAS

PROGRAMACIÓN DIGITAL APLICADA A LA


INGENIERÍA CIVIL

WILFREDO JUAN CUPE ROMAN

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 1


TEMA-1
• Cadena de Caracteres.
• Declaración
• Lectura
• Escritura
• Tabla de Caracteres ASCII
• Biblioteca de Funciones string.h
• strlen()
• strcpy()
• strcat()
• strcmp()
• Ejercicios.
W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 2
Cadena de Caracteres
Las cadenas de Caracteres son vectores de caracteres (elementos de
tipo char) con una peculiaridad: el texto de la cadena termina siempre
en un carácter nulo. El carácter nulo tiene código ASCII 0 y podemos
representarlo tanto con el entero 0 como con el carácter ’\0’.

Ejemplos de cadenas:

“HOLA MUNDO” ‘H’ ‘O’ ‘L’ ‘A’ ‘ ‘ ‘M’ ‘U’ ‘N’ ‘D’ ‘O’ ‘\0’

“CB415-I” ‘C’ ‘B’ ‘4’ ‘1’ ‘5’ ‘-’ ‘I’ ‘\0’

“\n” ‘\n’‘\0’

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 3


Declaración
Las cadenas se declaran como vectores de caracteres, así que debes
proporcionar el número máximo de caracteres que es capaz de
almacenar: su capacidad.
Cadena declarada para almacenar 20 caracteres
char cad[20];
Cadena declarada e inicializada con un valor
char cad[20]=“CB415-I”;

Almacenamiento en la Memoria
cad: ‘C’ ‘B’ ‘4’ ‘1’ ‘5’ ‘-’ ‘I’ ‘\0’
0 1 2 3 4 5 6 7
W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 4
Lectura
scanf(“%s”,cad); Lee cad desde teclado, no hay que
poner & y solo lee una palabra.
gets(cad); Lee cad desde teclado hasta encontrar
un salto de línea, es decir lee una
frase.
fscanf(a,”%s”,cad); Lee cad desde archivo, no hay que
poner & y solo lee una palabra.
fgets(cad,N° caracteres+1,a); Lee el N° de caracteres especificado o
hasta encontrar un salto de línea, lo
que ocurra primero.
W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 5
Escritura
printf(“%s”,cad); Escribe cad en pantalla.
printf(“%20s”,cad); En un ancho=20 justificado derecha.
printf(“%-20s”,cad); En un ancho=20 justificado izquierda.

fprintf(b,”%s”,cad); Escribe cad en archivo.


fprintf(b,”%20s”,cad); En un ancho=20 justificado derecha.
fprintf(b,”%-20s”,cad); En un ancho=20 justificado izquierda.

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 6


Tabla de
Caracteres
ASCII
American Standard
Code for Information
Interchange.

Utilizada por los


sistemas informáticos
para representar
caracteres, símbolos,
signos y textos.

Conversión de tipos:
char int

Carácter Código
= Alt +
ASCII ASCII
W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 7
Códigos de la Tabla ASCII extendida
Para la Tabla ASCII extendida: DEV = ASCII - 256

Caracter ASCII DEV Caracter ASCII DEV


á 160 -96 Á 181 -75
é 130 -126 É 144 -112
í 161 -95 Í 214 -42
ó 162 -94 Ó 224 -32
ú 163 -93 Ú 233 -23
ñ 164 -92 Ñ 165 -91

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 8


Ejemplo-1
Dado un archivo de texto MAYUSCULA.TXT, se pide escribir un
programa que muestre en un archivo XVOCALES.TXT el listado de
palabras y la cantidad de vocales que contengan impreso con
minúsculas.
Ejemplo:
MAYUSCULA.TXT XVOCALES.TXT
EL CORAZON ALEGRE HERMOSEA EL ROSTRO el 1
corazon 3
alegre 3
hermosea 4
el 1
rostro 2

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 9


Ejemplo-2
Escribir un programa que determine cuantas veces se repite una cadena en
otra más larga, por ejemplo:

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 10


Biblioteca de Funciones string.h
strlen(cad); Calcula la longitud de cad.
strcpy(cad1, cad2); Copia cad2 en cad1.
strcat(cad1, cad2); Concatena cad1 con cad2.
strcmp(cad1, cad2); Compara cad1 con cad2 y retorna un
valor entero:
<0 Si cad1<cad2
=0 Si cad1=cad2
>0 Si cad1>cad2

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 11


Ejercicio-1

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 12


Ejercicio-2

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 13


Ejercicio Propuesto

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 14


TEMA-2
• Arreglos de Cadenas de Caracteres.
• Declaración
• Lectura
• Escritura
• Ejercicios y Aplicaciones

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 15


Arreglos de Cadenas de Caracteres
Los arreglos de cadenas de caracteres son arreglos lineales cuyos
elementos son cadenas de caracteres.
Los arreglos de cadenas también se pueden utilizar como arreglos
bidimensionales de caracteres.

Ejemplo de arreglo de cadenas:

“HOLA MUNDO” ‘H’ ‘O’ ‘L’ ‘A’ ‘ ‘ ‘M’ ‘U’ ‘N’ ‘D’ ‘O’ ‘\0’
“CB415-I” ‘C’ ‘B’ ‘4’ ‘1’ ‘5’ ‘-’ ‘I’ ‘\0’
“\n” ‘\n’ ‘\0’

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 16


Declaración
Los arreglos de cadenas se declaran como matrices de tipo caracter, se
debe proporcionar el número máximo de cadenas y la cantidad de
caracteres que es capaz de almacenar cada una de sus cadenas.

Arreglo de cadenas declarado para almacenar 30 cadenas de 20


caracteres cada una.
0 “HOLA MUNDO”
char x[30][20];
1 “CB415-I”
2 “\n”
Almacenamiento en la Memoria …
29 “EJEMPLO”

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 17


Lectura
scanf(“%s”,x[i]); Lee x[i] desde teclado, no hay que
poner & y solo lee una palabra.
gets(x[i]); Lee x[i] desde teclado hasta
encontrar un salto de línea, es decir
lee una frase.
fscanf(a,”%s”,x[i]); Lee x[i] desde archivo, no hay que
poner & y solo lee una palabra.
fgets(x[i],N° caracteres+1,a); Lee el N° de caracteres especificado o
hasta encontrar un salto de línea, lo
que ocurra primero.
W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 18
Escritura
printf(“%s”,x[i]); Escribe x[i] en pantalla.
printf(“%20s”,x[i]); En un ancho=20 justificado derecha.
printf(“%-20s”,x[i]); En un ancho=20 justificado izquierda.

fprintf(b,”%s”,x[i]); Escribe x[i]en archivo.


fprintf(b,”%20s”,x[i]); En un ancho=20 justificado derecha.
fprintf(b,”%-20s”,x[i]); En un ancho=20 justificado izquierda.

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 19


Biblioteca de Funciones string.h
strlen(x[i]); Calcula la longitud de x[i].
strcpy(x[i], x[j]); Copia x[j] en x[i].
strcat(x[i], x[j]); Concatena x[i] con x[j].
strcmp(x[i], x[j]); Compara x[i] con x[j] y retorna un
valor entero:
<0 Si x[i]<x[j]
=0 Si x[i]=x[j]
>0 Si x[i]>x[j]

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 20


Diferencias entre carácter, cadena y arreglo de
cadenas
char car, cad[30], x[30][20];

Carácter Cadena
‘A’ “A”
car
cad[i] cad
x[i][j] x[i]

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 21


Ejercicio-1

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 22


Ejercicio-2
Elaborar un programa que use la función LEE() y la función PREMIO() y
utilizando arreglos lineales resuelva la situación del dueño de una
fábrica. El dueño de la fábrica decide premiar a los dos empleados que
demoren el menor tiempo en la fabricación de su producto.
Determinar el 1° puesto y el 2° puesto en un archivo SALIDA.TXT si los
datos son leídos desde el archivo EMPLEADOS.TXT.

EMPLEADOS.TXT SALIDA.TXT
PEREZ LOPEZ JUAN CARLOS 2h50m30s 1ER PREMIO: VIDAL QUIROZ MARIA
VIDAL QUIROZ MARIA 1h04m30s 2DO PREMIO: SOLIS HERNANDEZ ANA
SANCHEZ TORRES LUIS ALBERTO 1h50m20s
GARCIA SALAS ADRIAN 2h10m35s
SOLIS HERNANDEZ ANA 1h30m45s

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 23


Ejercicio-3

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 24


Ejercicio Propuesto

W. CUPE / CB415 / DACB - FIC - UNI / CICLO 2022-3 25

También podría gustarte