Question
Answer and Explanation
Creating a vowel counter in C without relying on standard string functions requires a character-by-character analysis using basic control structures. Here’s how you can achieve this:
1. Input the String: Since we can't use string functions, we'll read input character by character until the end of the input, which we will denote with a NULL character '\0'
.
2. Initialize Vowel Counter: We start by initializing a counter for the number of vowels to 0.
3. Character Iteration: The core of the program involves iterating through each character of the input one by one using a while
loop until we encounter the NULL terminator '\0'
.
4. Vowel Check: Inside the loop, we'll check if the current character is a vowel (a, e, i, o, u, A, E, I, O, U). If it is, we increment the vowel counter.
5. Output the Result: Finally, we display the total count of vowels to the user.
Here is the C code:
#include <stdio.h>
int main() {
char ch;
int vowelCount = 0;
printf("Enter a string: ");
while((ch = getchar()) != '\n' && ch != EOF) {
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' ||
ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') {
vowelCount++;
}
}
printf("Number of vowels: %d\n", vowelCount);
return 0;
}
Important considerations:
- This method avoids using functions from string.h, such as strlen
, strcpy
, or strcmp
.
- We can detect the end of input in a console program by using a newline character '\n'
.
- The code handles both lowercase and uppercase vowels.
By implementing this approach, you can effectively count vowels in a string in C, without using any of the standard string functions.