Sep 10, 2019 at 5:11pm Sep 10, 2019 at 5:11pm UTC
I have to write a function that will take in a string array and will then return the first vowel found, if none return -1.
I wanted to make sure the actual code itself worked that it was finding a vowel.
So my question is how do I output the character that the first vowel shows up on?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char vowels[] = {'a' , 'e' , 'i' , 'o' , 'u' ,
'A' , 'E' , 'I' , 'O' , 'U' };
string text;
cout << "Enter a word: " ;
getline (cin, text);
if (text.find_first_of (vowels) != string::npos)
{
cout << "Word has vowels" ;
}
else {
cout << "Word has no vowels" ;
}
return 0;
}
Last edited on Sep 10, 2019 at 5:13pm Sep 10, 2019 at 5:13pm UTC
Sep 10, 2019 at 5:34pm Sep 10, 2019 at 5:34pm UTC
Perhaps you could use the value returned by find_first_of()?
Sep 10, 2019 at 6:11pm Sep 10, 2019 at 6:11pm UTC
If you could, can you show me an example of how I would do that?
Sep 11, 2019 at 7:02pm Sep 11, 2019 at 7:02pm UTC
I was just doing something like this a few days ago, I created a function to identify a letter, and then called it with just vowels
int NumCharFound(string stringToSearch, char letterToFind)
{
int numCharFound = 0;
size_t charOffset = stringToSearch.find(letterToFind, 0);
while (charOffset != string::npos)
{
++numCharFound;
charOffset = stringToSearch.find(letterToFind, charOffset + 1);
}
return numCharFound;
}
then in main call:
int numVowels = NumCharFound(testCompare, 'a');
numVowels += NumCharFound(testCompare, 'e');
numVowels += NumCharFound(testCompare, 'i');
numVowels += NumCharFound(testCompare, 'o');
numVowels += NumCharFound(testCompare, 'u');
numVowels += NumCharFound(testCompare, 'y');
cout << "There are " << numVowels << " vowels found in " << sampleTest << endl;