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 <stdio.h>
#include <ctype.h>
int countVowels(char *str) {
int count = 0;
for (int i = 0; str[i] != '\0'; i++) {
char ch = tolower(str[i]);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
count++;
}
}
return count;
}
int main() {
char str[100];
printf("Enter a string: ");
gets(str);
printf("Number of vowels: %d\n", countVowels(str));
return 0;
}
Output: Number of vowels: 3
Method 2: Using Recursion
This method counts vowels recursively.
#include <stdio.h>
#include <ctype.h>
int countVowelsRecursive(char *str, int index) {
if (str[index] == '\0') 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() {
char str[100];
printf("Enter a string: ");
gets(str);
printf("Number of vowels: %d\n", countVowelsRecursive(str, 0));
return 0;
}
Output: Number of vowels: 3
Method 3: Using Pointer
This method uses pointers to traverse the string and count vowels.
#include <stdio.h>
#include <ctype.h>
int countVowelsPointer(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() {
char str[100];
printf("Enter a string: ");
gets(str);
printf("Number of vowels: %d\n", countVowelsPointer(str));
return 0;
}
Output: Number of vowels: 4