Given a character, check if it is vowel or consonant. Vowels are ‘a’, ‘e’, ‘i’, ‘o’ and ‘u’. All other characters (‘b’, ‘c’, ‘d’, ‘f’ ….) are consonants.
Examples:
Input : x = 'c' Output : Consonant Input : x = 'u' Output : Vowel
We check whether the given character matches any of the 5 vowels. If yes, we print “Vowel”, else we print “Consonant”.
C++
// CPP program to check if a given character // is vowel or consonant. #include <iostream> using namespace std; // Function to check whether a character is // vowel or not void vowelOrConsonant( char x) { if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' ) cout << "Vowel" << endl; else cout << "Consonant" << endl } // Driver code int main() { vowelOrConsonant( 'c' ); vowelOrConsonant( 'e' ); return 0; } |
Java
// java program to check if a given // character is vowel or consonant. import java.io.*; public class GFG { // Function to check whether a // character is vowel or not static void vowelOrConsonant( char x) { if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' ) System.out.println( "Vowel" ); else System.out.println( "Consonant" ); } // Driver code static public void main(String[] args) { vowelOrConsonant( 'c' ); vowelOrConsonant( 'e' ); } } // This code is contributed by vt_m. |
Python3
# Python3 program to check if a given # character is vowel or consonant. # Function to check whether a character # is vowel or not def vowelOrConsonant(x): if (x = = 'a' or x = = 'e' or x = = 'i' or x = = 'o' or x = = 'u' ): print ( "Vowel" ) else : print ( "Consonant" ) # Driver code vowelOrConsonant( 'c' ) vowelOrConsonant( 'e' ) # This code is contributed by # mohit kumar 29 |
C#
// C# program to check if a given // character is vowel or consonant. using System; public class GFG { // Function to check whether a // character is vowel or not static void vowelOrConsonant( char x) { if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' ) Console.WriteLine( "Vowel" ); else Console.WriteLine( "Consonant" ); } // Driver code static public void Main() { vowelOrConsonant( 'c' ); vowelOrConsonant( 'e' ); } } // This code is contributed by vt_m. |
PHP
<?php // PHP program to check if a given // character is vowel or consonant. // Function to check whether a // character is vowel or not function vowelOrConsonant( $x ) { if ( $x == 'a' || $x == 'e' || $x == 'i' || $x == 'o' || $x == 'u' ) echo "Vowel" . "\n" ; else echo "Consonant" . "\n" ; } // Driver code vowelOrConsonant( 'c' ); vowelOrConsonant( 'e' ); // This code is contributed // by Akanksha Rai ?> |
Javascript
<script> // Javascript program to check if a given // character is vowel or consonant. // Function to check whether a // character is vowel or not function vowelOrConsonant(x) { if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' ) document.write( "Vowel" + "</br>" ); else document.write( "Consonant" + "</br>" ); } vowelOrConsonant( 'c' ); vowelOrConsonant( 'e' ); // This code is contributed by mukesh07. </script> |
Output:
Consonant Vowel
Time Complexity: O(1)
Auxiliary Space: O(1)
How to handle capital letters as well?
C++
// C++ program to check if a given character // is vowel or consonant. #include <iostream> using namespace std; // Function to check whether a character is // vowel or not void vowelOrConsonant( char x) { if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' || x == 'A' || x == 'E' || x == 'I' || x == 'O' || x == 'U' ) cout << "Vowel" << endl; else cout << "Consonant" << endl; } // Driver code int main() { vowelOrConsonant( 'c' ); vowelOrConsonant( 'E' ); return 0; } |
Java
// Java program to check if a given // character is vowel or consonant import java.io.*; public class GFG { // Function to check whether a // character is vowel or not static void vowelOrConsonant( char x) { if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' || x == 'A' || x == 'E' || x == 'I' || x == 'O' || x == 'U' ) System.out.println( "Vowel" ); else System.out.println( "Consonant" ); } // Driver code static public void main(String[] args) { vowelOrConsonant( 'c' ); vowelOrConsonant( 'E' ); } } // This article is contributed by vt_m. |
Python3
# Python3 program to check if a given # character is vowel or consonant. # Function to check whether a # character is vowel or not def vowelOrConsonant(x): if (x = = 'a' or x = = 'e' or x = = 'i' or x = = 'o' or x = = 'u' or x = = 'A' or x = = 'E' or x = = 'I' or x = = 'O' or x = = 'U' ): print ( "Vowel" ) else : print ( "Consonant" ) # Driver code if __name__ = = '__main__' : vowelOrConsonant( 'c' ) vowelOrConsonant( 'E' ) # This code is contributed by # Sanjit_Prasad |
C#
// C# program to check if a given // character is vowel or consonant using System; public class GFG { // Function to check whether a // character is vowel or not static void vowelOrConsonant( char x) { if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' || x == 'A' || x == 'E' || x == 'I' || x == 'O' || x == 'U' ) Console.WriteLine( "Vowel" ); else Console.WriteLine( "Consonant" ); } // Driver code static public void Main() { vowelOrConsonant( 'c' ); vowelOrConsonant( 'E' ); } } // This article is contributed by vt_m. |
PHP
<?php // PHP program to check if a given character // is vowel or consonant. // Function to check whether a // character is vowel or not function vowelOrConsonant( $x ) { if ( $x == 'a' || $x == 'e' || $x == 'i' || $x == 'o' || $x == 'u' || $x == 'A' || $x == 'E' || $x == 'I' || $x == 'O' || $x == 'U' ) echo "Vowel" . "\n" ; else echo "Consonant" . "\n" ; } // Driver code vowelOrConsonant( 'c' ); vowelOrConsonant( 'E' ); // This code is contributed // by Akanksha Rai ?> |
Javascript
<script> // Javascript program to check if a // given character is vowel or consonant. // Function to check whether a character is // vowel or not function vowelOrConsonant(x) { if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' || x == 'A' || x == 'E' || x == 'I' || x == 'O' || x == 'U' ) document.write( "Vowel" + "</br>" ); else document.write( "Consonant" + "</br>" ); } // Driver code vowelOrConsonant( 'c' ); vowelOrConsonant( 'E' ); // This code is contributed by rameshtravel07 </script> |
Output:
Consonant Vowel
Time Complexity: O(1)
Auxiliary Space: O(1)
using switch case
C++
#include <iostream> using namespace std; int isVowel( char ch) { int check = 0; switch (ch) { case 'a' : case 'e' : case 'i' : case 'o' : case 'u' : case 'A' : case 'E' : case 'I' : case 'O' : case 'U' : check = 1; } return check; } // Driver Code int main() { cout << "a is " << isVowel( 'a' ) << endl; // 1 means Vowel cout << "x is " << isVowel( 'x' ) << endl; // 0 means Consonant return 0; } |
C
#include <stdio.h> int isVowel( char ch) { int check = 0; switch (ch) { case 'a' : case 'e' : case 'i' : case 'o' : case 'u' : case 'A' : case 'E' : case 'I' : case 'O' : case 'U' : check = 1; } return check; } int main() { printf ( "a is %d\n" , isVowel( 'a' )); // 1 means Vowel printf ( "x is %d\n" , isVowel( 'x' )); // 0 means Consonant return 0; } |
Java
/*package whatever //do not write package name here */ import java.io.*; class GFG { static int isVowel( char ch) { int check = 0 ; switch (ch) { case 'a' : case 'e' : case 'i' : case 'o' : case 'u' : case 'A' : case 'E' : case 'I' : case 'O' : case 'U' : check = 1 ; } return check; } // Driver Code public static void main(String[] args) { System.out.println( "a is " + isVowel( 'a' )); System.out.println( "x is " + isVowel( 'x' )); } } |
Python3
def isVowel(ch): switcher = { 'a' : "Vowel" , 'e' : "Vowel" , 'i' : "Vowel" , 'o' : "Vowel" , 'u' : "Vowel" , 'A' : "Vowel" , 'E' : "Vowel" , 'I' : "Vowel" , 'O' : "Vowel" , 'U' : "Vowel" } return switcher.get(ch, "Consonant" ) # Driver Code print ( 'a is ' + isVowel( 'a' )) print ( 'x is ' + isVowel( 'x' )) |
C#
using System; class GFG { static int isVowel( char ch) { int check = 0; switch (ch) { case 'a' : check = 1; break ; case 'e' : check = 1; break ; case 'i' : check = 1; break ; case 'o' : check = 1; break ; case 'u' : check = 1; break ; case 'A' : check = 1; break ; case 'E' : check = 1; break ; case 'I' : check = 1; break ; case 'O' : check = 1; break ; case 'U' : check = 1; break ; } return check; } // Driver code static public void Main () { Console.WriteLine( "a is " + isVowel( 'a' )); Console.WriteLine( "x is " + isVowel( 'x' )); } } // This code is contributed by rag2127 |
Javascript
<script> function isVowel(ch) { var check = 0; switch (ch) { case 'a' : case 'e' : case 'i' : case 'o' : case 'u' : case 'A' : case 'E' : case 'I' : case 'O' : case 'U' : check = 1; } return check; } // Driver Code // 1 means Vowel document.write( "a is " + isVowel( 'a' ) + "<br>" ); // 0 means Consonant document.write( "x is " + isVowel( 'x' ) + "<br>" ); // This code is contributed by Shivani </script> |
a is 1 x is 0
Time Complexity: O(1)
Auxiliary Space: O(1)
Another way is to find() the character in a string containing only Vowels.
C++
#include <iostream> #include <string> using namespace std; int isVowel( char ch) { // Make the list of vowels string str = "aeiouAEIOU" ; return (str.find(ch) != string::npos); } // Driver code int main() { cout << "a is " << isVowel( 'a' ) << endl; cout << "x is " << isVowel( 'x' ) << endl; return 0; } |
C
#include <stdio.h> #include <string.h> int isVowel( char ch) { // Make the list of vowels char str[] = "aeiouAEIOU" ; return ( strchr (str, ch) != NULL); } // Driver Code int main() { printf ( "a is %d\n" , isVowel( 'a' )); printf ( "x is %d\n" , isVowel( 'x' )); return 0; } |
Java
/*package whatever //do not write package name here */ import java.io.*; class GFG { static int isVowel( char ch) { // Make the list of vowels String str = "aeiouAEIOU" ; return (str.indexOf(ch) != - 1 ) ? 1 : 0 ; } // Driver Code public static void main(String[] args) { System.out.println( "a is " + isVowel( 'a' )); System.out.println( "x is " + isVowel( 'x' )); } } |
Python3
def isVowel(ch): # Make the list of vowels str = "aeiouAEIOU" return ( str .find(ch) ! = - 1 ) # Driver Code print ( 'a is ' + str (isVowel( 'a' ))) print ( 'x is ' + str (isVowel( 'x' ))) |
C#
// C# program to implement // the above approach using System; class GFG{ static int isVowel( char ch) { // Make the list of vowels string str = "aeiouAEIOU" ; return (str.IndexOf(ch) != -1) ? 1 : 0; } // Driver code static void Main() { Console.WriteLine( "a is " + isVowel( 'a' )); Console.WriteLine( "x is " + isVowel( 'x' )); } } // This code is contributed by divyeshrabadiya07 |
Javascript
<script> /*package whatever //do not write package name here */ function isVowel(ch) { // Make the list of vowels let str = "aeiouAEIOU" ; return (str.indexOf(ch) != -1) ? 1 : 0; } // Driver Code document.write( "a is " + isVowel( 'a' )+ "<br>" ); document.write( "x is " + isVowel( 'x' )+ "<br>" ); // This code is contributed by patel2127 </script> |
a is 1 x is 0
Time Complexity: O(N)
Auxiliary Space: O(1)
Most efficient way to check Vowel using bit shift :
In ASCII these are the respective values of every vowel both in lower and upper cases.
Vowel | DEC | HEX | BINARY |
a |
97 | 0x61 | 01100001 |
e |
101 | 0x65 | 01100101 |
i |
105 | 0x69 | 01101001 |
o |
111 | 0x6F | 01101111 |
u |
117 | 0x75 | 01110101 |
|
|||
A |
65 | 0x41 | 01000001 |
E |
69 | 0x45 | 01000101 |
I |
73 | 0x49 | 01001001 |
O |
79 | 0x4F | 01001111 |
U |
85 | 0x55 | 01010101 |
As very lower and upper case vowels have the same 5 LSBs. We need a number 0x208222 which gives 1 in its LSB after right-shift 1, 5, 19, 15 otherwise gives 0. The numbers depend on character encoding.
DEC | HEX | BINARY |
31 | 0x1F | 00011111 |
2130466 | 0x208222 | 1000001000001000100010 |
C++
#include <iostream> using namespace std; int isVowel( char ch) { return (0x208222 >> (ch & 0x1f)) & 1; // same as (2130466 >> (ch & 31)) & 1; } // Driver Code int main() { cout << "a is " << isVowel( 'a' ) << endl; cout << "x is " << isVowel( 'x' ) << endl; return 0; } |
C
#include <stdio.h> int isVowel( char ch) { return (0x208222 >> (ch & 0x1f)) & 1; // same as (2130466 >> (ch & 31)) & 1; } // Driver Code int main() { printf ( "a is %d\n" , isVowel( 'a' )); printf ( "x is %d\n" , isVowel( 'x' )); return 0; } |
Java
/*package whatever //do not write package name here */ import java.io.*; class GFG { static int isVowel( char ch) { return ( 0x208222 >> (ch & 0x1f )) & 1 ; // same as (2130466 >> (ch & 31)) & 1; } // Driver Code public static void main(String[] args) { System.out.println( "a is " + isVowel( 'a' )); System.out.println( "x is " + isVowel( 'x' )); } } |
Python3
def isVowel(ch): return ( 0x208222 >> ( ord (ch) & 0x1f )) & 1 # same as (2130466 >> (ord(ch) & 31)) & 1; # Driver Code print ( 'a is ' + str (isVowel( 'a' ))) print ( 'x is ' + str (isVowel( 'x' ))) |
C#
// C# implementation of above approach using System; class GFG { static int isVowel( char ch) { return (0x208222 >> (ch & 0x1f)) & 1; // same as (2130466 >> (ch & 31)) & 1; } // Driver code static void Main() { Console.WriteLine( "a is " + isVowel( 'a' )); Console.WriteLine( "x is " + isVowel( 'x' )); } } // This code is contributed by divesh072019 |
Javascript
<script> function isVowel(ch) { return (0x208222 >> (ch.charCodeAt(0) & 0x1f)) & 1; // same as (2130466 >> (ch & 31)) & 1; } // Driver Code document.write( "a is " + isVowel( 'a' )+ "<br>" ); document.write( "x is " + isVowel( 'x' )+ "<br>" ); // This code is contributed by unknown2108 </script> |
a is 1 x is 0
Time Complexity: O(1)
Auxiliary Space: O(1)
*We can omit the ( ch & 0x1f ) part on X86 machines as the result of SHR/SAR (which is >> ) masked to 0x1f automatically.
*For machines bitmap check is faster than table check, but if the ch variable stored in register than it may perform faster.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!