#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define MAX_SIZE 1024 #define NVOWELS 5 #define A 0 #define E 1 #define I 2 #define O 3 #define U 4 int isvowel(char c); char itovowel(int index); int main(int argc, char *argv[]) { char s1[MAX_SIZE]; int a[NVOWELS]; // Initialize all counts to 0 for(int i = 0; i < NVOWELS; ++i) { a[i] = 0; } // Read a string to count if(fgets(s1, MAX_SIZE, stdin) == NULL) { printf("Please enter a string.\n"); exit(1); } // Calculate length of string int len1 = strlen(s1); printf("%s", s1); // Count the vowels for(int i = 0; i < len1; i++) { char c = tolower(s1[i]); int rv = isvowel(c); if(rv != -1) { a[rv]++; } } // Print vowel count for(int i = 0; i < NVOWELS; i++) { printf("%c: %d\n", itovowel(i), a[i]); } return 0; } // Translate a vowel to its proper index int isvowel(char c) { if(c == 'a') return A; if(c == 'e') return E; if(c == 'i') return I; if(c == 'o') return O; if(c == 'u') return U; return -1; } // Translates an index to its corresponding vowel char itovowel(int index) { switch(index) { case A: return 'a'; case E: return 'e'; case I: return 'i'; case O: return 'o'; case U: return 'u'; default: return -1; } }