Program to find if a character is vowel or Consonant
Last Updated :
16 Feb, 2023
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++
#include <iostream>
using namespace std;
void vowelOrConsonant( char x)
{
if (x == 'a' || x == 'e' || x == 'i' ||
x == 'o' || x == 'u' )
cout << "Vowel" << endl;
else
cout << "Consonant" << endl
}
int main()
{
vowelOrConsonant( 'c' );
vowelOrConsonant( 'e' );
return 0;
}
|
Java
import java.io.*;
public class GFG {
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" );
}
static public void main(String[] args)
{
vowelOrConsonant( 'c' );
vowelOrConsonant( 'e' );
}
}
|
Python3
def vowelOrConsonant(x):
if (x = = 'a' or x = = 'e' or
x = = 'i' or x = = 'o' or x = = 'u' ):
print ( "Vowel" )
else :
print ( "Consonant" )
vowelOrConsonant( 'c' )
vowelOrConsonant( 'e' )
|
C#
using System;
public class GFG {
static void vowelOrConsonant( char x)
{
if (x == 'a' || x == 'e' || x == 'i' ||
x == 'o' || x == 'u' )
Console.WriteLine( "Vowel" );
else
Console.WriteLine( "Consonant" );
}
static public void Main()
{
vowelOrConsonant( 'c' );
vowelOrConsonant( 'e' );
}
}
|
PHP
<?php
function vowelOrConsonant( $x )
{
if ( $x == 'a' || $x == 'e' ||
$x == 'i' || $x == 'o' ||
$x == 'u' )
echo "Vowel" . "\n" ;
else
echo "Consonant" . "\n" ;
}
vowelOrConsonant( 'c' );
vowelOrConsonant( 'e' );
?>
|
Javascript
<script>
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' );
</script>
|
Output:
Consonant
Vowel
Time Complexity: O(1)
Auxiliary Space: O(1)
How to handle capital letters as well?
C++
#include <iostream>
using namespace std;
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;
}
int main()
{
vowelOrConsonant( 'c' );
vowelOrConsonant( 'E' );
return 0;
}
|
Java
import java.io.*;
public class GFG {
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" );
}
static public void main(String[] args)
{
vowelOrConsonant( 'c' );
vowelOrConsonant( 'E' );
}
}
|
Python3
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" )
if __name__ = = '__main__' :
vowelOrConsonant( 'c' )
vowelOrConsonant( 'E' )
|
C#
using System;
public class GFG {
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" );
}
static public void Main()
{
vowelOrConsonant( 'c' );
vowelOrConsonant( 'E' );
}
}
|
PHP
<?php
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" ;
}
vowelOrConsonant( 'c' );
vowelOrConsonant( 'E' );
?>
|
Javascript
<script>
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>" );
}
vowelOrConsonant( 'c' );
vowelOrConsonant( 'E' );
</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;
}
int main()
{
cout << "a is " << isVowel( 'a' )
<< endl;
cout << "x is " << isVowel( 'x' )
<< endl;
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' ));
printf ( "x is %d\n" ,
isVowel( 'x' ));
return 0;
}
|
Java
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;
}
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" )
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;
}
static public void Main ()
{
Console.WriteLine( "a is " + isVowel( 'a' ));
Console.WriteLine( "x is " + isVowel( 'x' ));
}
}
|
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;
}
document.write( "a is " + isVowel( 'a' ) + "<br>" );
document.write( "x is " + isVowel( 'x' ) + "<br>" );
</script>
|
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)
{
string str = "aeiouAEIOU" ;
return (str.find(ch) != string::npos);
}
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)
{
char str[] = "aeiouAEIOU" ;
return ( strchr (str, ch) != NULL);
}
int main()
{
printf ( "a is %d\n" , isVowel( 'a' ));
printf ( "x is %d\n" , isVowel( 'x' ));
return 0;
}
|
Java
import java.io.*;
class GFG {
static int isVowel( char ch)
{
String str = "aeiouAEIOU" ;
return (str.indexOf(ch) != - 1 ) ? 1 : 0 ;
}
public static void main(String[] args)
{
System.out.println( "a is " + isVowel( 'a' ));
System.out.println( "x is " + isVowel( 'x' ));
}
}
|
Python3
def isVowel(ch):
str = "aeiouAEIOU"
return ( str .find(ch) ! = - 1 )
print ( 'a is ' + str (isVowel( 'a' )))
print ( 'x is ' + str (isVowel( 'x' )))
|
C#
using System;
class GFG{
static int isVowel( char ch)
{
string str = "aeiouAEIOU" ;
return (str.IndexOf(ch) != -1) ?
1 : 0;
}
static void Main()
{
Console.WriteLine( "a is " + isVowel( 'a' ));
Console.WriteLine( "x is " + isVowel( 'x' ));
}
}
|
Javascript
<script>
function isVowel(ch)
{
let str = "aeiouAEIOU" ;
return (str.indexOf(ch) != -1) ? 1 : 0;
}
document.write( "a is " + isVowel( 'a' )+ "<br>" );
document.write( "x is " + isVowel( 'x' )+ "<br>" );
</script>
|
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;
}
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;
}
int main()
{
printf ( "a is %d\n" , isVowel( 'a' ));
printf ( "x is %d\n" , isVowel( 'x' ));
return 0;
}
|
Java
import java.io.*;
class GFG
{
static int isVowel( char ch)
{
return ( 0x208222 >> (ch & 0x1f )) & 1 ;
}
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
print ( 'a is ' + str (isVowel( 'a' )))
print ( 'x is ' + str (isVowel( 'x' )))
|
C#
using System;
class GFG {
static int isVowel( char ch)
{
return (0x208222 >> (ch & 0x1f)) & 1;
}
static void Main()
{
Console.WriteLine( "a is " + isVowel( 'a' ));
Console.WriteLine( "x is " + isVowel( 'x' ));
}
}
|
Javascript
<script>
function isVowel(ch)
{
return (0x208222 >> (ch.charCodeAt(0) & 0x1f)) & 1;
}
document.write( "a is " + isVowel( 'a' )+ "<br>" );
document.write( "x is " + isVowel( 'x' )+ "<br>" );
</script>
|
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.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...