I have problem to start. I need algorithm for program that prompts the user to input a sequence of characters and outputs the number of vowel, using user-defined value returning function Vowel.

I have problem to start. I need algorithm for program that prompts the user to input a sequence of characters and outputs the number of vowel, using user-defined value returning function Vowel.

So you want to count how much times a certain vowel is encountered …

Yes, I need get number of vowels in the sequence.

Then you might want to take a look at this code snippet :)

## All 10 Replies

I have problem to start. I need algorithm for program that prompts the user to input a sequence of characters and outputs the number of vowel, using user-defined value returning function Vowel.

So you want to count how much times a certain vowel is encountered in the sequence of characters?

``````e.g. : aabcc
a: 2
b: 1
c: 2``````

Is this right?

So you want to count how much times a certain vowel is encountered in the sequence of characters?

Is this right?

Yes, I need get number of vowels in the sequence.

Yes, I need get number of vowels in the sequence.

Then you might want to take a look at this code snippet :)

Thank you very much:idea:

This is my final code of program that counts vowels.

``````#include "stdafx.h"
#include <iostream>
//=================

//======================
using namespace std;
//======================

//======================
//Function Prototypes
//======================
bool isVowel ( char );
//======================

// IsVowel Function
//+++++++++++++++++++
bool isVowel (char letter) {
switch (letter) {
case 'a': return true;
break;
case 'e': return true;
break;
case 'i': return true;
break;
case 'o': return true;
break;
case 'u': return true;
break;
case 'y': return true;
break;
default: return false;
}//switch
} // isVowel function
int main()
{

// Variable Declaration
//+++++++++++++++++++++

int vowelcounter;
char letter;
char repeat;
bool loop;
bool finished = true;
//+++++++++++++++++++++++

//+++++++++++++++++++++++
//Welcome Screen
//++++++++++++++
cout << " " << endl;
cout << "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" << endl;
cout << "Y                                    Y" << endl;
cout << "Y   Welcome to the IsVowel program   A" << endl;
cout << "A                                    A" << endl;
cout << "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" << endl;
cout << " " << endl;
// Loop
//+++++

do {
loop = true;
vowelcounter = 0;
//+++++++++++++++++++++++

//+++++++++++++++++++++++
do {
cout << " Enter a character " << endl;
cin >> letter;
if (isVowel (letter))
vowelcounter++;
cout << " Would you like to enter another character? (y/n) " << endl;
if ( askuser == 'n' ) {
loop = false;
}
}// 2nd do
while (loop);
cout << " Number of vowels: " << vowelcounter << endl;
cout << " Would you like repeat? (y/n) " << endl;
cin >> repeat;
if (repeat == 'n')
finished = false;
} while (finished);

return 0;
}``````

You can write your isVowel function in less lines :P
(It can still be written more efficiently, but I want to demonstrate it using a switch case, because the OP used that statement in his code)

``````bool isVowel (char letter) {
switch (letter) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'y': return true;
break;
default: return false;
}
}``````

>It can still be written more efficiently
I'm curious, how could it get more efficient than that?

>It can still be written more efficiently
I'm curious, how could it get more efficient than that?

If you're talking about CPU efficiency, I can't think of anything that'll run faster then the code already posted, then I have no idea.
If you want less lines of code, you could do something like:

``````bool isVowel(char letter){
std::string vowels="aeiouy";
if (vowels.find(letter) == std::string::npos) return false;
return true;
}``````

>It can still be written more efficiently
I'm curious, how could it get more efficient than that?

A lookup table comes to mind (for a "speed" type of efficiency).

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.