Write a C program to find total number of vowels and consonants in a string using loop and if else. How to find total number of vowels and consonants in a string using switch case in C programming. Logic to count number of vowels and consonants in a string.
Example
Input
Input string: I love Codeforwin.
Output
Total Vowels = 7 Total Consonants = 8
Required knowledge
Basic C programming, If else, For loop, String
Must know – Program to check vowel and consonant
Logic to count number of vowels and consonants
Below is the step by step descriptive logic to count number of vowels and consonants in a string.
- Input string from user, store it in some variable say str.
- Initialize two other variables to store vowel and consonant count. Say vowel = 0 and consonant = 0.
- Run a loop from start till end of string.
- Inside the loop increment vowel by 1 if current character is vowel. Otherwise increment consonant by 1 if current character is consonant.
Program to count number of vowels and consonants using if
/**
* C program to count total number of vowel or consonant in a string
*/
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100 // Maximum string size
int main()
{
char str[MAX_SIZE];
int i, len, vowel, consonant;
/* Input string from user */
printf("Enter any string: ");
gets(str);
vowel = 0;
consonant = 0;
len = strlen(str);
for(i=0; i<len; i++)
{
if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'))
{
/*
* If the current character(str[i]) is a vowel
*/
if(str[i] =='a' || str[i]=='e' || str[i]=='i' || str[i]=='o' || str[i]=='u' ||
str[i] =='A' || str[i]=='E' || str[i]=='I' || str[i]=='O' || str[i]=='U' )
vowel++;
else
consonant++;
}
}
printf("Total number of vowel = %d\n", vowel);
printf("Total number of consonant = %d\n", consonant);
return 0;
}
The above approach to count number of vowels and consonants in a string is easy to understand for every beginner. However, for this program use of switch case is recommended instead of if.
Program to count number of vowels and consonants using switch case
/**
* C program to count total number of vowel or consonant in a string using switch case
*/
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100 // Maximum string size
int main()
{
char str[MAX_SIZE];
int i, len, vowel, consonant;
/* Input strings from user */
printf("Enter any string: ");
gets(str);
vowel = 0;
consonant = 0;
len = strlen(str);
for(i=0; i<len; i++)
{
if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'))
{
switch(str[i])
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
vowel++;
break;
default:
consonant++;
}
}
}
printf("Total number of vowel = %d\n", vowel);
printf("Total number of consonant = %d\n", consonant);
return 0;
}
Finally you can re-write the program using pointers.
Program to count number of vowels and consonants using pointers
/**
* C program to count total number of vowel or consonant in a string using pointers
*/
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100 // Maximum string size
int main()
{
char str[MAX_SIZE];
char * s = str;
int vowel, consonant;
/* Input strings from user */
printf("Enter any string: ");
gets(str);
vowel = 0;
consonant = 0;
while(*s)
{
if((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <='Z'))
{
switch(*s)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
vowel++;
break;
default:
consonant++;
}
}
s++;
}
printf("Total number of vowel = %d\n", vowel);
printf("Total number of consonant = %d\n", consonant);
return 0;
}
Output
Enter any string: I love Codeforwin! Total number of vowel = 7 Total number of consonant = 8
Happy coding 😉
Recommended posts
- String programming exercises and solutions.
- C program to find reverse of a given string.
- C program to check whether a string is palindrome or not.
- C program to find total number of words in a string.
- C program to find reverse of a string.
- C program to find first occurrence of a character in string.
- C program to search all occurrences of a character in a string.