码迷,mamicode.com
首页 > 编程语言 > 详细

第 14 章 结构和其他数据形式(enum枚举)

时间:2018-06-14 22:45:51      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:c99   flow   ons   []   tin   src   play   clu   char   

技术分享图片
 1 /*-----------------------------
 2     enum.c -- 使用枚举类型的值
 3 -----------------------------*/
 4 
 5 #include <stdio.h>
 6 #include <string.h>
 7 //#include <stdbool.h>    //C99特性
 8 
 9 #define LEN 30
10 
11 char* s_gets(char *st, int n);
12 
13 enum spectrum {red, orange, yellow, green, blue, violet};
14 const char *colors[] = {"red", "orange", "yellow", "green", "blue", "violet"};
15 
16 int main()
17 {
18     char choice[LEN];
19     int color;
20     bool color_is_found = false;
21 
22     puts("Enter a color (empty line to quit):");
23 
24     while (s_gets(choice, LEN) != NULL && choice[0] != \0)
25     {
26         for (color = red; color != violet; ++color)
27         {
28             if (strcmp(choice, colors[color]) == 0)
29             {
30                 color_is_found = true;
31                 break;
32             }
33         }
34 
35         if (color_is_found)
36             switch (color)
37             {
38             case red:
39                 puts("Roses are red.");
40                 break;
41             case orange:
42                 puts("Poppies are orange.");
43                 break;
44             case yellow:
45                 puts("Sunflowers are yellow.");
46                 break;
47             case green:
48                 puts("Grass is green");
49                 break;
50             case blue:
51                 puts("Bluebells are blue");
52                 break;
53             case violet:
54                 puts("Violets are violet");
55                 break;
56             }
57         else
58             printf("I don‘t know about the color %s.\n", choice);
59 
60         color_is_found = false;
61         
62         puts("Next color, please (empty line to quit):");
63     }
64 
65     puts("Goodbye");
66 
67     return 0;
68 }
69 
70 char* s_gets(char *st, int n)
71 {
72     char *ret_val, *find;
73 
74     if (ret_val = fgets(st, n, stdin))
75     {
76         if (find = strchr(st, \n))
77             *find = \0;
78         else
79             while (fgetc(stdin) != \n) continue;
80     }
81 
82     return ret_val;
83 }
enum.c

技术分享图片

第 14 章 结构和其他数据形式(enum枚举)

标签:c99   flow   ons   []   tin   src   play   clu   char   

原文地址:https://www.cnblogs.com/web1013/p/9185235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!