pa05.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Do not modify this file.
  3. * If you modify this file, your program will fail in grading.
  4. */
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8. #include "pa05.h"
  9. int main(int argc, char ** argv)
  10. {
  11. if (argc < 4)
  12. {
  13. printf("\n"
  14. " Usage: ./pa05 <option> <input-file> <output-file>\n"
  15. "\n"
  16. " <option> can be either 's' for a string sort, or 'i'\n"
  17. " for an integer sort.\n"
  18. "\n"
  19. );
  20. return EXIT_FAILURE;
  21. }
  22. if (strcmp(argv[1], "i") == 0) /* sort integers */
  23. {
  24. int numInteger = 0;
  25. int * arrInteger = NULL;
  26. arrInteger = readInteger(argv[2], & numInteger);
  27. if (numInteger == 0)
  28. {
  29. return EXIT_FAILURE;
  30. }
  31. printf("\n");
  32. printInteger(arrInteger, numInteger);
  33. printf("\n\n // ~ Printing Sorted Output ~ //\n\n");
  34. sortInteger(arrInteger, numInteger);
  35. printInteger(arrInteger, numInteger);
  36. printf("\n");
  37. saveInteger(argv[3], arrInteger, numInteger);
  38. freeInteger(arrInteger, numInteger);
  39. return EXIT_SUCCESS;
  40. }
  41. else if (strcmp(argv[1], "s") == 0) /* sort strings */
  42. {
  43. int numString = 0;
  44. char * * arrString = NULL;
  45. arrString = readString(argv[2], & numString);
  46. if (numString == 0)
  47. {
  48. return EXIT_FAILURE;
  49. }
  50. printf("\n");
  51. printString(arrString, numString);
  52. sortString(arrString, numString);
  53. printf("\n\n // ~ Printing Sorted Output ~ //\n\n");
  54. printString(arrString, numString);
  55. printf("\n");
  56. saveString(argv[3], arrString, numString);
  57. freeString(arrString, numString);
  58. return EXIT_SUCCESS;
  59. }
  60. else
  61. {
  62. fprintf(stderr, "Unknown <option>, '%s'. Should be either 's' or 'i'\n",
  63. argv[1]);
  64. }
  65. /* unknown type */
  66. return EXIT_FAILURE;
  67. }