Given a string and write a C program to count the number of vowels and consonants in this string.
Examples:
Input: str = "geeks for geeks"
Output:
Vowels: 5
Consonants: 8
Input: str = "abcdefghijklmnopqrstuvwxyz"
Output:
Vowels: 5
Consonants: 21
Using For Loops
- Take the string as input
- Take each character from this string to check
- If this character is a vowel, increment the count of vowels
- Else increment the count of consonants.
- Print the total count of vowels and consonants in the end.
Below is the implementation of the above approach:
C
#include <stdio.h>
void count_vowels_and_consonant( char * str)
{
int vowels = 0, consonants = 0;
int i;
char ch;
for (i = 0; str[i] != '\0' ; i++) {
ch = str[i];
if (ch == 'a' || ch == 'e'
|| ch == 'i' || ch == 'o'
|| ch == 'u' || ch == 'A'
|| ch == 'E' || ch == 'I'
|| ch == 'O' || ch == 'U' )
vowels++;
else if (ch == ' ' )
continue ;
else
consonants++;
}
printf ( "\nVowels: %d" , vowels);
printf ( "\nConsonants: %d" , consonants);
}
int main()
{
char * str = "geeks for geeks" ;
printf ( "String: %s" , str);
count_vowels_and_consonant(str);
return 0;
}
|
Output
String: geeks for geeks
Vowels: 5
Consonants: 8
The complexity of the above method
Time Complexity: O(1)
Auxiliary Space: O(1)
Using Recursion
Below is the C program count number of vowels and consonants in a String using recursion:
C
#include <stdio.h>
#include <string.h>
void stringcount( char * s)
{
static int i, vowels = 0, consonants = 0;
if (!s[i]) {
printf ( "\nVowels: %d\n" , vowels);
printf ( "Consonants: %d\n" , consonants);
return ;
}
else {
if ((s[i] >= 65 && s[i] <= 90)
|| (s[i] >= 97 && s[i] <= 122)) {
if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i'
|| s[i] == 'o' || s[i] == 'u' || s[i] == 'A'
|| s[i] == 'E' || s[i] == 'I' || s[i] == 'O'
|| s[i] == 'U' )
vowels++;
else
consonants++;
}
i++;
stringcount(s);
}
}
int main()
{
char s[1000] = "Geeks for Geeks" ;
printf ( "String: %s" , s);
stringcount(s);
}
|
Output
String: Geeks for Geeks
Vowels: 5
Consonants: 8
Using Pointers and While Loop
Below is the C program to count the number of vowels and consonants in a string using pointers and while loop:
C
#include <stdio.h>
#include <string.h>
int main()
{
char s[1000] = "geeks for geeks" , *p;
int vowels = 0, consonants = 0;
p = s;
while (*p) {
if ((*p >= 65 && *p <= 90)
|| (*p >= 97 && *p <= 122)) {
if (*p == 'a' || *p == 'e' || *p == 'i'
|| *p == 'o' || *p == 'u' || *p == 'A'
|| *p == 'E' || *p == 'I' || *p == 'O'
|| *p == 'U' )
vowels++;
else
consonants++;
}
p++;
}
printf ( "String: %s" , s);
printf ( "\nVowels: %d\n" , vowels);
printf ( "Consonants: %d\n" , consonants);
return 0;
}
|
Output
String: geeks for geeks
Vowels: 5
Consonants: 8
Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!
Last Updated :
01 Jun, 2023
Like Article
Save Article