不使用数组或向量或函数! ...从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'不是结构或联合。谢谢您的帮助!
答案 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;
}