为什么我的函数无法确定字符是否是元音?

问题描述 投票:-3回答:1

我正在编写一个基本程序来计算字符串的元音。我想尝试使用bool函数来测试每个字符是否是元音,但是每当我用元音输入字符串时,它都不会增加vowels int。

#include <iostream>

using namespace std;

bool isVowel(char){
 char chara;
 return (tolower(chara) == 'a' || tolower(chara) == 'e' || 
   tolower(chara) == 'i' || tolower(chara) == 'o' || 
   tolower(chara) == 'u' || tolower(chara) == 'y');
}

int main()
{
   string input;
   int vowels = 0;

   cin >> input;

   for(unsigned int i = 0; i<input.length(); i++){
      if( isVowel(input.at(i)) )
         vowels++;
   }
   cout << "Including a, e, i, o, u, and y, that word contains " << vowels << " vowels.\n";
}

例如,当我在控制台中输入“ hello”作为输入时,vowels整数的值为0。我的函数怎么了?

c++ function error-handling parameter-passing
1个回答
1
投票

您弄错了函数参数的语法,并且无意间写了一些合法的东西,但是没有按照您的预期去做。像这样写

bool isVowel(char chara) {
    return chara == 'A' || chara == 'E' || 
        chara == 'I' || chara == 'O' || chara == 'U' || chara == 'Y' || 
        chara == 'a' || chara == 'e' || chara == 'i' || chara == 'o' || 
        chara == 'u' || chara == 'y';
}
© www.soinside.com 2019 - 2024. All rights reserved.