Next: Duffs Device, Previous: switch Statement, Up: Statements [Contents][Index]
switch
Here’s an example of using the switch
statement
to distinguish among characters:
struct vp { int vowels, punct; };
struct vp
count_vowels_and_punct (char *string)
{
int c;
int vowels = 0;
int punct = 0;
/* Don’t change the parameter itself. */
/* That helps in debugging. */
char *p = string;
struct vp value;
while (c = *p++)
switch (c)
{
case 'y':
case 'Y':
/* We assume y_is_consonant
will check surrounding
letters to determine whether this y is a vowel. */
if (y_is_consonant (p - 1))
break;
/* Falls through */
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
vowels++;
break;
case '.':
case ',':
case ':':
case ';':
case '?':
case '!':
case '\"':
case '\'':
punct++;
break;
}
value.vowels = vowels;
value.punct = punct;
return value;
}