fork download
  1. #include <iostream>
  2.  
  3. namespace
  4. {
  5. enum day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
  6. const char* day_str[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
  7. }
  8.  
  9. int getDay(const char* dayName)
  10. {
  11. for (int i = 0; i < sizeof day_str / sizeof day_str[0]; ++i)
  12. {
  13. bool good = true;
  14. for (int c = 0; c < 4; ++c)
  15. {
  16. if (dayName[c] != day_str[i][c])
  17. {
  18. good = false;
  19. break;
  20. }
  21. }
  22. if (good)
  23. {
  24. return i;
  25. }
  26. }
  27. return -1;
  28. }
  29.  
  30. int main()
  31. {
  32. char dayName[20];
  33. while (std::cin >> dayName)
  34. {
  35. int d = getDay(dayName);
  36. switch(d)
  37. {
  38. case Sat:
  39. case Sun:
  40. std::cout << day_str[d] << " : Weekend\n";
  41. break;
  42. case Mon:
  43. std::cout << day_str[d] << " : Start of work week\n";
  44. break;
  45. case Tue:
  46. case Wed:
  47. case Thu:
  48. std::cout << day_str[d] << " : Midweek\n";
  49. break;
  50. case Fri:
  51. std::cout << day_str[d] << " : End of work week\n";
  52. break;
  53. default:
  54. std::cout << dayName << " : Invalid day of the week\n";
  55. break;
  56. }
  57. }
  58. return 0;
  59. }
  60.  
Success #stdin #stdout 0s 15232KB
stdin
Mon Sat Tue Sun Wed Mon sat Thu Sat Fri Sun Friday
stdout
Mon : Start of work week
Sat : Weekend
Tue : Midweek
Sun : Weekend
Wed : Midweek
Mon : Start of work week
sat : Invalid day of the week
Thu : Midweek
Sat : Weekend
Fri : End of work  week
Sun : Weekend
Friday : Invalid day of the week