C++ Program to Delete Vowels from String

In this article, you will learn and get code to remove (delete) vowels from string in C++. The program is created in following ways:

  • Remove all vowels from given String
  • Remove only desired vowel from given String

What is Vowel ?

If the pronunciation of a character produced by humans, when the breath flows out through mouth without being blocked by teeth, lips or tongue. Then the character is called as vowel.

There are basically 5 vowels that are:

  • a, e, i, o, u
  • A, E, I, O, U

Sometime, y can also be called as a vowel. But here in the program given below, we'll only deal with above 5 vowels. I'm not going in deep about vowels. Because here we have to create the program only.

Remove all Vowels from String

To delete all vowels from a given string in C++ programming, you have to ask from user to enter the string first. And then search for vowel and remove it, by shifting all the character (from here) to one index back as shown in the program given below

The question is, write a program in C++ that removes all vowels from a given string. Here is its answer:

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
    char str[50];
    int i=0, j, chk;
    cout<<"Enter the String: ";
    gets(str);
    while(str[i]!='\0')
    {
        chk=0;
        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')
        {
            j=i;
            while(str[j-1]!='\0')
            {
                str[j] = str[j+1];
                j++;
            }
            chk = 1;
        }
        if(chk==0)
            i++;
    }
    cout<<"\nString without Vowels = "<<str;
    cout<<endl;
    return 0;
}

This program was build and run under Code::Blocks IDE. Here is its sample run:

C++ program delete vowels from string

Now supply the string say codescracker dot com and press ENTER to remove all the vowels from it and prints the new string without any vowel as shown in the output given below:

remove vowels from string c++

The dry run of above program with user input codescracker dot com goes like:

  • Initial value, i=0
  • When user enters the string, then it gets stored in str variable in this way:
    • str[0]=c
    • str[1]=o
    • str[2]=d
    • and so on, upto
    • str[19]=m
  • Because the maximum size (of str) is 50, but the size of entered string is 20, therefore a null terminated character (\0) automatically gets assigned after the last character's index. Therefore str[20]=\0
  • Now the condition of while loop, str[i]!='\0' or str[0]!='\0' or c!='\0' evaluates to be true, therefore program flow goes inside the loop
  • There, 0 gets initialized to chk. So chk=0
  • And the condition (of 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' gets evaluated
  • Because the character at str[0] is c that is not equal to any of the 5 vowels, so the condition evaluates to be false. Therefore program flow does not goes inside the loop
  • Now, because the value of chk is 0, therefore the value of i gets incremented. So i=1
  • Now program flow goes back and evaluates the condition of while loop again
  • This process continues until the condition evaluates to be false
  • When a character at any index of str gets matched with any of the 5 vowels, then all upcoming character from the index where a character gets matched with vowel, gets shifted to one index back
  • In this way, all the vowels gets deleted from the string
  • So after exiting from the loop, just print the value of str

Remove desired Vowel from String

This program does not removes all the vowels from string, rather it removes only desired one. That is, the program asks from user to enter the string and a vowel both, to delete given vowel from given string.

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
    char str[50], vowel;
    int i=0, j, chk;
    cout<<"Enter the String: ";
    gets(str);
    cout<<"Enter the Vowel: ";
    cin>>vowel;
    while(str[i]!='\0')
    {
        chk=0;
        if(str[i]==vowel)
        {
            j=i;
            while(str[j-1]!='\0')
            {
                str[j] = str[j+1];
                j++;
            }
            chk = 1;
        }
        if(chk==0)
            i++;
    }
    cout<<"\nString without '"<<vowel<<"' = "<<str;
    cout<<endl;
    return 0;
}

Here is its sample run with user input, codescracker dot com as string and o as the vowel to remove:

remove desired vowel from string c++

Same Program in Other Languages

C++ Online Test


« Previous Program Next Program »



Like/Share Us on Facebook 😋