HomeProgrammingCVowel and Consonant program in c using switch

Vowel and Consonant program in c using switch

Introduction

Programming is all about problem-solving, and what better way to enhance your problem-solving skills than by delving into a practical example? In this blog post, we’ll explore how to create a program in the C programming language to determine whether a given input is a vowel or a consonant using the switch statement. This simple yet insightful exercise will not only help you understand the basics of control flow in C but also give you a taste of character manipulation.

The Whole Program

Let’s start by presenting the entire C program. Once you see the complete code, we’ll break it down step by step.

#include <stdio.h>

int main() {
    char character;

    // Prompt user for input
    printf("Enter a character: ");
    scanf("%c", &character);

    // Switch statement to check if the input is a vowel or consonant
    switch (character) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
        case 'A':
        case 'E':
        case 'I':
        case 'O':
        case 'U':
            printf("%c is a vowel.\n", character);
            break;
        default:
            printf("%c is a consonant.\n", character);
    }

    return 0;
}

Calculating Vowels and Consonants

Before we delve into the details of the program, let’s understand the logic behind it. Vowels are the letters ‘a’, ‘e’, ‘i’, ‘o’, and ‘u’ (both uppercase and lowercase), while consonants are all the other letters of the alphabet.

To determine whether a character is a vowel or consonant, we use a switch statement. The switch statement allows us to check the value of a variable against multiple possible cases. In our case, the variable is the input character.

Breaking Down the Problem

  1. User Input: The program starts by prompting the user to enter a character. This character is stored in the variable character.
  2. Switch Statement: The heart of our program is the switch statement. It checks the value of character against multiple cases, each representing a vowel. If the input matches any of these cases, the program prints that the input is a vowel; otherwise, it declares it a consonant.
  3. Default Case: The default case handles situations where the input character does not match any of the specified cases. In such instances, the program concludes that the character is a consonant.

Breaking Down the Code Step by Step

Step 1: Include Necessary Header

#include <stdio.h>

This line includes the standard input-output library, which is necessary for using functions like printf and scanf.

Step 2: Define the main Function

int main() {
    // Code goes here
    return 0;
}

This is the main entry point of our program. The function returns an integer (0 in this case) to the operating system, indicating a successful execution.

Step 3: Declare Variables

char character;

We declare a variable named character to store the user input.

Step 4: Prompt User for Input

printf("Enter a character: ");
scanf("%c", &character);

This block of code asks the user to enter a character and stores it in the character variable.

Step 5: Switch Statement

switch (character) {
    // Cases go here
}

The switch statement evaluates the value of character against various cases.

Step 6: Handle Vowel Cases

case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
    printf("%c is a vowel.\n", character);
    break;

If character matches any of these cases, the program prints that it is a vowel.

Step 7: Default Case for Consonants

default:
    printf("%c is a consonant.\n", character);

If character does not match any of the vowel cases, the program concludes that it is a consonant.

Step 8: Return Statement

return 0;

This line indicates the successful execution of the program.

Advanced Code with Error Handling

While the basic program serves its purpose, adding error handling can enhance its robustness. Let’s modify the program to handle invalid inputs gracefully.

#include <stdio.h>
#include <ctype.h>

int main() {
    char character;

    // Prompt user for input
    printf("Enter a character: ");

    // Read the first non-whitespace character
    while (scanf(" %c", &character) != 1) {
        // Clear the input buffer
        while (getchar() != '\n');

        // Prompt user for input again
        printf("Invalid input. Please enter a character: ");
    }

    // Convert to uppercase for easier comparison
    character = toupper(character);

    // Switch statement to check if the input is a vowel or consonant
    switch (character) {
        // Cases go here
    }

    return 0;
}

In this advanced version, we use the ctype.h library to include the toupper function. We also modify the input process to handle invalid inputs gracefully. The program will prompt the user to enter a character until a valid character is provided.

Using Functions for Modularity

For better code organization and modularity, let’s encapsulate the logic inside a function.

#include <stdio.h>
#include <ctype.h>

// Function to check if a character is a vowel
int isVowel(char character) {
    character = toupper(character);

    switch (character) {
        // Cases go here
    }

    return 0;
}

int main() {
    char input;

    // Prompt user for input
    printf("Enter a character: ");

    // Read the first non-whitespace character
    while (scanf(" %c", &input) != 1) {
        // Clear the input buffer
        while (getchar() != '\n');

        // Prompt user for input again
        printf("Invalid input. Please enter a character: ");
    }

    // Call the function and print the result
    if (isVowel(input)) {
        printf("%c is a vowel.\n", input);
    } else {
        printf("%c is a consonant.\n", input);
    }

    return 0;
}

By encapsulating the logic inside the isVowel function, the main function becomes cleaner and more readable. This approach follows the principle of code modularity, making it easier to maintain and understand.

Conclusion

Congratulations! You’ve successfully explored a practical example of programming in C to determine whether a given character is a vowel or a consonant using the switch statement. This exercise not only introduced you to the basics of control flow in C but also demonstrated the importance of error handling and code modularity for

creating robust and maintainable programs. Continue to build on these foundations, and you’ll find yourself tackling more complex programming challenges with confidence. Happy coding!

RELATED ARTICLES
- Advertisment -

Most Popular