fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdbool.h>
  4.  
  5. enum color{
  6. color_black = 0,
  7. color_red = 0xff0000,
  8. color_green = 0x00ff00,
  9. color_blue = 0x0000ff,
  10. color_yellow = color_red | color_green,
  11. color_magenta = color_red | color_blue,
  12. color_cyan = color_green | color_blue
  13. };
  14.  
  15. bool str_to_color(const char *colname, enum color *colval){
  16. if(!strcmp(colname, "black")){
  17. *colval = color_black;
  18. return true;
  19. }
  20. if(!strcmp(colname, "red")){
  21. *colval = color_red;
  22. return true;
  23. }
  24. if(!strcmp(colname, "green")){
  25. *colval = color_green;
  26. return true;;
  27. }
  28. if(!strcmp(colname, "blue")){
  29. *colval = color_blue;
  30. return true;
  31. }
  32. if(!strcmp(colname, "yellow")){
  33. *colval = color_yellow;
  34. return true;
  35. }
  36. if(!strcmp(colname, "magenta")){
  37. *colval = color_magenta;
  38. return true;
  39. }
  40. if(!strcmp(colname, "cyan")){
  41. *colval = color_cyan;
  42. return true;
  43. }
  44. return false;
  45. }
  46.  
  47. int main(void) {
  48. enum color col;
  49. char buff[64];
  50. while(scanf("%63s ", buff) == 1){
  51. if(str_to_color(buff, &col)){
  52. printf("%#08x\n", col);
  53. }
  54. else{
  55. puts("Wrong color.");
  56. }
  57. }
  58. return 0;
  59. }
Success #stdin #stdout 0s 2160KB
stdin
black
red
green
blue
yellow
magenta
cyan
hello
stdout
00000000
0xff0000
0x00ff00
0x0000ff
0xffff00
0xff00ff
0x00ffff
Wrong color.