Curso de Programación en C/Prog124
Ir a la navegación
Ir a la búsqueda
Prog124
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdbool.h>
4 #include <stdlib.h>
5 #include <ctype.h>
6
7 enum espectro { rojo, naranja, amarillo, verde, azul, violeta };
8
9 const char * colores[] = {"rojo", "naranja", "amarillo",
10 "verde", "azul", "violeta"};
11 #define TAMANO 30
12
13 int main(void)
14 {
15 char opcion[TAMANO],
16 prueba[TAMANO];
17
18 enum espectro color;
19
20 int i;
21
22 bool color_se_encuentra = false;
23
24 printf( "Ingresa un color (<Enter> para terminar): " );
25 while( fgets( opcion, TAMANO - 2, stdin ) && opcion[0] != '\n' )
26 {
27 if( *(opcion + strlen( opcion ) -1 ) != '\n' )
28 {
29 printf( "El color que entraste es demasiado largo.\n"
30 "Solo %d chars MAX\n", TAMANO - 2 );
31 exit(1);
32 }
33 else
34 *(opcion + strlen( opcion ) -1 ) = '\0';
35
36 for( i = 0; i < strlen( opcion ); i++ )
37 prueba[i] = tolower( opcion[i] );
38 prueba[i] = '\0';
39
40 for( color = rojo; color <= violeta; color++ )
41 {
42 if( strcmp( prueba, colores[color] ) == 0 )
43 {
44 color_se_encuentra = true;
45 break;
46 }
47 }
48
49 if( color_se_encuentra )
50 switch( color )
51 {
52 case rojo :
53 puts( "Las Rosas son de color rojo." );
54 break;
55 case naranja :
56 puts( "Las amapolas son de color naranja." );
57 break;
58 case amarillo :
59 puts( "Las girasoles son de color amarillo." );
60 break;
61 case verde :
62 puts( "La hierba es de color verde." );
63 break;
64 case azul :
65 puts( "Las jacintos son de color azul." );
66 break;
67 case violeta :
68 puts( "Las violetas son de color violeta." );
69 break;
70 }
71 else
72 printf( "No conozco el color %s.\n", opcion );
73 color_se_encuentra = false;
74 printf( "Ingresa un color (<Enter> para terminar): " );
75 }
76 puts( "\n¡Adios!\n" );
77 return 0;
78 }
Resultado
[rrc@localhost CClase]$ gcc -Wall -o Prog123 Prog123.c [rrc@localhost CClase]$ ./Prog123 Ingresa un color (<Enter> para terminar): verde La hierba es de color verde. Ingresa un color (<Enter> para terminar): VIOLETA Las violetas son de color violeta. Ingresa un color (<Enter> para terminar): AzUl Las jacintos son de color azul. Ingresa un color (<Enter> para terminar): AmarillO Las girasoles son de color amarillo. Ingresa un color (<Enter> para terminar): Purple No conozco el color Purple. Ingresa un color (<Enter> para terminar): ¡Adios! [rrc@localhost CClase]$