Conditional branching - which 'if ( )' and 'else ( )' afford us - has a step-brother called "the SWITCH / CASE' block. Here we look at that interesting feature of 'C'. We also touch on using 'man' pages as an immediate language / function reference.
why not try using the MAN page to find out what 'strstr()' does, and how to use it. In the terminal window, enter "man strstr" ('q' exits MAN). Also try a MAN query for 'strcat()' using "man strcat"... |
/* pgm15 source */
#include <stdio.h>
#include <string.h> // we use 'strstr()' in this program
#define STRINGLEN 375
void load_up_string(char *);
int main(int argc, char *argv[]) {
char line[STRINGLEN];
memset(line, '\0', STRINGLEN); // null-out the entire string
load_up_string(&line[0]); // now fill the string with words
switch (argc) {
case 1 : { // = NO command line parameters, just show string
printf("\n%s\n\n", line);
printf("The 'line[]' array is %ld characters large.\n\n", strlen(line));
printf("Now, run program again with something to search for.\n");
break;
}
case 2 : { // = ONE command line parameter, search for it
if (strstr(line, argv[1]) == NULL)
printf("\nAwww.... didn't find %s. No cookie for user. Try again.\n", argv[1]);
else
printf("\nBingo!! \"%s\" was found. We'll send you $3.00!\n", argv[1]);
break;
}
default : { // user gave > 1 command line parameter
printf("\nPlease run this program with 0 or 1 command line items.\n");
break;
}
}
printf("\n");
return(0);
}
void load_up_string(char *line) {
strcat(line, "When in the course of human events, it becomes necessary ");
strcat(line, "to decide upon a particular food or drink to consume in the ");
strcat(line, "presence of others (either friend or foe), one must take into ");
strcat(line, "account: Why, Where, When, Who, Which, and Monkey. ");
strcat(line, "A doctor a day keeps the apple away. A nine in time saves ");
strcat(line, "some number of stitches. You can tune a piano but you ");
strcat(line, "can't tuna fish.");
}