Count the number of vowels in C++
Understanding Vowel Counting
Vowel counting involves determining the number of vowels (a, e, i, o, u) in a given string.
We will explore three different methods to count the vowels in a string using C++.
Method 1: Using a Loop
This method iterates through the string and counts each vowel.
#include <iostream>
#include <cctype>
using namespace std;
int countVowels(string str) {
int count = 0;
for (char ch : str) {
ch = tolower(ch);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
count++;
}
}
return count;
}
int main() {
string str;
cout << "Enter a string: ";
getline(cin, str);
cout << "Number of vowels: " << countVowels(str) << endl;
return 0;
}
Output: Number of vowels: 3
Method 2: Using Recursion
This method counts vowels recursively.
#include <iostream>
#include <cctype>
using namespace std;
int countVowelsRecursive(string str, int index) {
if (index == str.length()) return 0;
char ch = tolower(str[index]);
int count = (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') ? 1 : 0;
return count + countVowelsRecursive(str, index + 1);
}
int main() {
string str;
cout << "Enter a string: ";
getline(cin, str);
cout << "Number of vowels: " << countVowelsRecursive(str, 0) << endl;
return 0;
}
Output: Number of vowels: 3
Method 3: Using Pointer
This method uses pointers to traverse the string and count vowels.
#include <iostream>
#include <cctype>
using namespace std;
int countVowelsPointer(const char* str) {
int count = 0;
while (*str) {
char ch = tolower(*str);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
count++;
}
str++;
}
return count;
}
int main() {
string str;
cout << "Enter a string: ";
getline(cin, str);
cout << "Number of vowels: " << countVowelsPointer(str.c_str()) << endl;
return 0;
}
Output: Number of vowels: 4