The English alphabet consists of 26 letters where 5 of which are called vowels and the rest of the 21 letters are called consonants. "a, e, i, o, u" are the vowels in the English language, all other than this are consonants. Special characters include space, tab, newline, etc. This C program counts the number of vowels and consonants and it is related to strings and characters.
Firstly, we have to check each letter in the given sentence and increment the respective count for a vowel or a consonant. For that, first set the counters to zero. Read a sentence from the user and take each character of the string using for loop
until it reaches the end of the sentence, a null character. Then check each character of the sentence is whether it's a vowel or not by using the if condition
. If it is a vowel, then increment its counter otherwise, the consonant counter is incremented.
After checking all characters in the sentence, we will display the number of vowels and consonants
STEP 1: Include the Header files to use the built-in functions in the C program.
STEP 2: Declare character arrays sentence[100], vow[ ]="aeiou"
STEP 3: Initialize the counter variables v_count , c_count and set it to 0.
STEP 4: Accept the sentence from the user to the variable sentence using the fgets()
function.
STEP 5: Using a for loop
, take each character of the string and do step 6 until the last character
STEP 6: First, check if the character is not a Special character then do step 7 else go for the next iteration of the loop.
STEP 7: Using strchr()
function checks if the character is present in vowels array vow[ ], both upper and lower cases are checked here converting the character by tolower()
function. If it is a Vowel, then increment v_count count by 1 else increment the c_count count by 1.
STEP 8: Display the number of vowels in the v_count counter and the number of consonants in the c_count counter.
For counting the vowels and consonants, we are using the below concepts in C programming, please refer to those for a better understanding
#include <stdio.h>
#include <string.h>
#include<ctype.h>
void main() {
char sentence[100] , vow[] = "aeiou" ;
int i , v_count = 0 , c_count = 0 ;
char * st ;
printf ("Enter a sentence\n") ;
fgets (sentence, 100, stdin) ;
for (i = 0; sentence[i] != '\0'; i++) {
if (sentence[i] != '\t' && sentence[i] != ' ' && sentence[i] != '\n') {
st = strchr ( vow, tolower(sentence[i]) ) ; /*checking for vowels in both lower and upper case */
if (st != NULL)
v_count = v_count + 1 ; /* increment vowel counter */
else
c_count = c_count + 1 ; /* increment consonant counter */
}
}
/* display output number of vowels and consonants */
printf("\nNo. of vowels is %d", v_count );
printf("\nNo. of consonants is %d ", c_count );
}
Enter a sentence Good Morning No. of vowels is 4 No. of consonants is 7