如何用单词打印元音?

时间:2016-06-01 11:49:24

标签: c++

不使用数组或向量或函数! ...从c_for everyone教科书中解决这个问题。

问题 - 编写一个读取单词并打印单词中元音数量的程序。对于本练习,假设 a e i o y y 是元音。例如,如果用户提供输入“Harry”,程序将打印2个元音

尝试 -

#include <iostream>
#include <cstring>


using namespace std;

int main()
{
cout <<"Please enter a word" ;
char alpha;
cin>> alpha; 
int count = 0;


for ( int i=0; i <= alpha.length(); i++)
{
if (alpha == 65 || alpha == 69 || alpha == 73 || alpha == 79 || alpha == 85 || alpha == 89)
    count++;
}

cout << count << " vowels." ;


return 0;

显示此错误但未编译 - p.4.13.cpp:15:27:错误:成员引用基类型'char'不是结构或联合。谢谢您的帮助!

2 个答案:

答案 0 :(得分:0)

尝试使用std :: string(或char数组,char [])而不是char,&#34; char&#34;是一个原始类型,它不是一个结构,没有你可以通过&#34;。&#34;访问的成员。操作

答案 1 :(得分:-1)

有更好的方法可以做到这一点,但只是尝试发布与原作相近的东西,我可以做到。

#include <iostream>
#include <string>


using namespace std;

const string vowels{ "aeiouy" };
int main()
{
    cout << "Please enter a word: ";
    std::string alpha;
    getline( cin, alpha, '\n' );
    int count = 0;

    for( const auto& letter : alpha ) {
        if( string::npos != vowels.find( letter ) ) ++count;
    }

    cout << count << " vowels.";

    cout << '\n' << '\n';
    system( "PAUSE" );
    return 0;
}