Está en la página 1de 1

1 // Cadenas en C.

Practica #7
2 // Ejercicio #4:
3 #include <stdio.h>
4 #include <string.h> // Incluir librerias para el manejo de cadenas
5
6 int main(void)
7 {
8 // 0. DECLARACION DE VARIABLES
9 // arreglos para almacenar 5 nombres de 20 caracteres cada uno
10 char nombres1[5][20];
11 char nombres2[5][20];
12
13 int nombresIguales; // total de nombre que se repiten
14
15 // 1. FASE DE INICIALIZACION
16 nombresIguales = 0;
17
18 // 2. FASE DE PROCESAMIENTO
19 printf("Ingrese cinco nombres\n");
20
21 for (size_t i = 0; i < 5; i++) {
22 printf("Nombre #%d: ", i + 1);
23
24 // Se lee una cadena del teclado en el arreglo nombres1,
25 // En este ejercicio las cadenas en el arreglo nombres1,
26 // no deben exceder longitud 19 caracteres, de modo que
27 // sobre espacio para el caracter nulo de terminacion.
28 scanf("%19s", nombres1[i]);
29
30 // copia el contenido de nombres1 en nombres2
31 strcpy(nombres2[i], nombres1[i]);
32 }
33
34 printf("\n");
35
36 for (size_t i = 0; i < 5; i++) {
37 for(size_t j = i + 1; j < 5; j++) {
38 //
39 // Se compara cada nombre con los siguientes.
40 // Por ejemplo, en el primer ciclo for cuando
41 // el indice i = 0, en el ciclo for interno se
42 // compara el primer nombre con los restantes
43 // del segundo array y asi susecivamente hasta
44 // llegar al ultimo nombre del array nombres1
45 //
46 // nombres1[0]==nombres2[1] ==> pedro == juan
47 // nombres1[0]==nombres2[2] ==> pedro == lucas
48 // nombres1[0]==nombres2[3] ==> pedro == tomas
49 // nombres1[0]==nombres2[4] ==> pedro == pedro ++
50 //
51 // Ademas todos los nombres se convierten
52 // a letras minusculas.
53 if (strcmp(strlwr(nombres1[i]), strlwr(nombres2[j])) == 0) {
54 nombresIguales++; // incrementar nombres iguales
55
56 // se imprimen los nombres iguales para prueba
57 printf("%s == %s\n", nombres1[i], nombres2[j]);
58 }
59 }
60 }
61
62 // 3. FASE DE TERMINACION
63 printf("\nNombres Iguales: %d\n", nombresIguales);
64
65 return 0;
66 }

También podría gustarte