fork download
  1. //Mia Agramon CS1A Chapter 10, P.590, #13
  2. //
  3. /*******************************************************************************
  4.  * Date Formatter
  5.  * _____________________________________________________________________________
  6.  * This program converts dates from mm/dd/yyyy to "Month" "Date", "Year."
  7.  * Example: 01/12/2003 --> January 12, 2003
  8.  *
  9.  * INPUT
  10.  * date in the format mm/dd/yyyy
  11.  * OUTPUT
  12.  * date in the format month date, year
  13.  ******************************************************************************/
  14. #include <iostream>
  15. #include <cstring>
  16. using namespace std;
  17.  
  18. void convertDate(char* str);
  19.  
  20. int main()
  21. {
  22. //Initialize Variables
  23. const int SIZE = 11;
  24. char date[SIZE];
  25.  
  26. //Get Input
  27. cout << "Enter a date (mm/dd/yyyy): ";
  28. cin.getline(date, SIZE);
  29. cout << date << endl;
  30.  
  31. //Display Output
  32. convertDate(date);
  33. cout << "Converted date: " << date << endl;
  34. return 0;
  35. }
  36.  
  37. //Function
  38. void convertDate(char* str)
  39. {
  40. char monthStr[3], dayStr[3], yearStr[5];
  41. int month;
  42. int day;
  43. int year;
  44.  
  45. monthStr[0] = str[0];
  46. monthStr[1] = str[1];
  47. monthStr[2] = '\0';
  48. month = atoi(monthStr);
  49.  
  50. dayStr[0] = str[3];
  51. dayStr[1] = str[4];
  52. dayStr[2] = '\0';
  53. day = atoi(dayStr);
  54.  
  55. yearStr[0] = str[6];
  56. yearStr[1] = str[7];
  57. yearStr[2] = str[8];
  58. yearStr[3] = str[9];
  59. yearStr[4] = '\0';
  60. year = atoi(yearStr);
  61.  
  62. const char* monthNames[] = {"January", "February", "March", "April", "May",
  63. "June", "July", "August", "September", "October",
  64. "November", "December"};
  65.  
  66. char monthName[20];
  67. strcpy(monthName, monthNames[month - 1]);
  68.  
  69. sprintf(str, "%s %02d, %04d", monthName, day, year);
  70. }
Runtime error #stdin #stdout #stderr 0.01s 5272KB
stdin
12/25/1990
stdout
Enter a date (mm/dd/yyyy): 12/25/1990
Converted date: December 25, 1990
stderr
*** stack smashing detected ***: <unknown> terminated