C Program to Count the Number of Vowels, Consonants and so on

To understand this example, you should have the knowledge of the following C programming topics:


Program to count vowels, consonants, etc.

#include <ctype.h>
#include <stdio.h>
int main() {

  char line[150];
  int vowels, consonant, digit, space;

  // initialize all variables to 0
  vowels = consonant = digit = space = 0;

  // get full line of string input
  printf("Enter a line of string: ");
  fgets(line, sizeof(line), stdin);

  // loop through each character of the string
  for (int i = 0; line[i] != '\0'; ++i) {

    // convert character to lowercase
    line[i] = tolower(line[i]);

    // check if the character is a vowel
    if (line[i] == 'a' || line[i] == 'e' || line[i] == 'i' ||
        line[i] == 'o' || line[i] == 'u') {

      // increment value of vowels by 1
      ++vowels;
    }

    // if it is not a vowel and if it is an alphabet, it is a consonant
    else if ((line[i] >= 'a' && line[i] <= 'z')) {
      ++consonant;
    }

    // check if the character is a digit
    else if (line[i] >= '0' && line[i] <= '9') {
      ++digit;
    }

    // check if the character is an empty space
    else if (line[i] == ' ') {
      ++space;
    }
  }

  printf("Vowels: %d", vowels);
  printf("\nConsonants: %d", consonant);
  printf("\nDigits: %d", digit);
  printf("\nWhite spaces: %d", space);

  return 0;
}

Output

Enter a line of string: C++ 20 is the latest version of C++ yet.
Vowels: 9
Consonants: 16
Digits: 2
White spaces: 8

Here, the string entered by the user is stored in the line variable.

Initially, the variables vowel, consonant, digit, and space are initialized to 0.

Then, a for loop is used to iterate over the characters of the string. In each iteration, we:

  • convert the character to lowercase using the tolower() function
  • check whether the character is a vowel, a consonant, a digit, or an empty space. Suppose the character is a consonant. Then, the consonant variable is increased by 1.

When the loop ends, the number of vowels, consonants, digits, and white spaces are stored in variables vowel, consonant, digit, and space respectively.

Note: We have used the tolower() function to simplify our program. To use this function, we need to import the ctype.h header file.

Before we wrap up, let's put your understanding of this example to the test! Can you solve the following challenge?

Challenge:

Write a function to return the first N vowels from a given string.

  • Return the first N vowels from the input string.
  • Assumption: The size of the string will never exceed 100 characters.
  • For example, with inputs str = "Hello World" and N = 3, the return value should be "eoo".
Did you find this article helpful?

Our premium learning platform, created with over a decade of experience and thousands of feedbacks.

Learn and improve your coding skills like never before.

Try Programiz PRO
  • Interactive Courses
  • Certificates
  • AI Help
  • 2000+ Challenges