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