.profile
switch.c
#include <stdio.h> #include <string.h> /* Compile: cc -g -ansi -pedantic -Wall -O2 -o switch switch.c */ /* Run: ./switch */ /* Prototype */ int valid_option(char *option); int main(int argc, char *argv[]) { char *program_name; char command_line_option; program_name = argv[0]; if (argc != 2) { printf("Usage: %s -h|-l|-v\n", program_name); return 1; } /* printf("debug %i\n", valid_option(argv[1])); */ /* return 1; */ switch (valid_option(argv[1])) { case 1: printf("Invalid option: %s\nAn option must be exactly 2 characters long.\n", argv[1]); return 1; case 2: printf("Invalid option: %s\nAn option must consist of one single character preceded by a minus sign '-'\n", argv[1]); return 1; } command_line_option = argv[1][1]; switch (command_line_option) { case 'h': puts("This could be a 'help' option..."); break; case 'l': puts("This could be a 'list' option..."); break; case 'v': puts("This could be a 'verbose' option..."); break; default: printf("Invalid option: %s\nUse one of the following options: -h|-l|-v\n", argv[1]); return 1; } return 0; } int valid_option(char *option) { if (strlen(option) != 2) { return 1; } else if (option[0] != '-') { return 2; } return 0; }