#include "types.h" #include #include #include /** * Safely print first argument provided to the program. Determine its meaning. * * @param argc total number of arguments provided to the program * * @param argv array/vector of arguments */ void print_first_argument(int argc, char *argv[]) { if (argc < 1) { return; } printf("%s\n", argv[0]); return; } /** * Safely print first 4 arguments provided to the program while converting them * to their corresponding data type. * * ./main * * To convert to , use function atoi() * (https://cplusplus.com/reference/cstdlib/atoi/) * * To convert to , use function atof() * (https://cplusplus.com/reference/cstdlib/atof/) * * Use the following commmand to execute your program with set of arguments: * * ./main 42 13.37 hello_program * * @param argc total number of arguments provided to the program * * @param argv array/vector of arguments */ void print_parse_arguments(int argc, char *argv[]) { int a; double b; int s = (argc<4)?argc:4; for (int i = 0; i < s; ++i) { switch (i) { case 1: a = atoi(argv[i]); printf("%d\n",a); break; case 2: b = atof(argv[i]); printf("%.3f\n",b); break; default: printf("%s\n",argv[i]); break; } } return; } /** * Safely print ALL arguments provided to the program without any conversion. * * ./main * * @param argc total number of arguments provided to the program * * @param argv array/vector of arguments */ void print_all_arguments(int argc, char *argv[]) { for (int i = 0; i < argc; ++i) { printf("%s\n", argv[i]); } return; } /** * Safely print the largest argument * * ./main * * @param argc total number of arguments provided to the program * * @param argv array/vector of arguments */ void print_largest_argument(int argc, char *argv[]) { char *c = ""; for (int i = 0; i < argc; ++i) { if(strlen(argv[i]) > strlen(c)){ c = argv[i]; } } printf("Largest argument: %s",c); return; } #ifndef TEST_BUILD int main(int argc, char *argv[]) { printf("\n-- print_first_argument --\n"); print_first_argument(argc, argv); printf("\n-- print_parse_arguments --\n"); print_parse_arguments(argc, argv); printf("\n-- print_all_arguments --\n"); print_all_arguments(argc, argv); printf("\n-- print_largest_argument --\n"); print_largest_argument(argc, argv); return 0; } #endif