编写原型函数(c ++)

时间:2014-10-27 15:58:38

标签: c++ function

我必须编写原型和C ++函数的实现 接收一个字符,如果该字符是元音则返回true,否则返回false。元音 包括以下字符'a'的大写和小写。 'e','我','o'和'你'。

我写过

bool vowelOrNot(char x)
{   if(x="a" or "e" or "i" or "o" or "u")
       cout<<"true"<<endl;

    else
       cout<<"false""<<endl;
}

我写道或因为我不知道怎么做这里的线路,我的功能是否正确?

5 个答案:

答案 0 :(得分:3)

正如没有人建议的那样,这是一个使用switch语句的解决方案:

bool vowelOrNot(char x)
{
    switch (x)
    {
        case 'a':
        case 'A':
        case 'e':
        case 'E':
        case 'i':
        case 'I':
        case 'o':
        case 'O':
        case 'u':
        case 'U':
            return true;

        default:
            return false;
    }
}

我考虑过使用toupper来转换输入,并且只检查大写字母的大写字母。

答案 1 :(得分:0)

您需要进行测试,例如,

int
main ( int argc, char *argv[] )
{
   bool test1 = vowelOrNot ( 'a' );
   std::cout << test1 << " expected to be true" << std::endl;

   return test1 == true ? EXIT_SUCCESS : EXIT_FAILURE;    
}

当然,测试还没有完成。但是你必须为所有可能的输入数据编写测试。

答案 2 :(得分:0)

bool vowelOrNot(char x) //x must be lowercase for the function to work as expected
{   if(x=='a' || x=='e' || x=='i' || x=='o' ||  x=='u' ) //== for comparing and single quotes for a char.
   //|| is the logical OR
   {
       cout<<"true"<<endl;
       return true; //return true to function caller
   }
    else
       cout<<"false"<<endl;
   return false;//return false to function caller
}

答案 3 :(得分:0)

小心使用原型这个词。 C ++函数原型是一个声明,通常出现在main()之前的文件顶部或模块的头文件中(可能是前者)。它看起来像这样:

bool vowelOrNot(char);

您拥有的是实现,但语法不正确。 &#34;或&#34;不是C ++中的关键字。使用&#34; ||&#34;。此外,&#34; ==&#34;是等于比较运算符而不是&#34; =&#34;。我建议至少查看以下文档:http://www.cplusplus.com/doc/tutorial/control/

另外,我注意到你的函数返回一个布尔值,但是你为每个布尔值打印单词而不是返回它。如果你需要打印这些单词,应该根据函数的返回值在别处处理。

我推荐的解决方案如下:

#include <string>
#include <cctype>
using namespace std;

bool vowelOrNot(char);

const string VOWELS = "aeiou";

int main
{
    //some code that uses vowelOrNot, perhaps printing true and false
}

bool vowelOrNot(char c)
{
  return VOWELS.find(tolower(c)) != string::npos;
}

最后,我建议将函数重命名为is_vowel()或类似的东西,使其更清晰,更简洁。

希望这有帮助!

答案 4 :(得分:-1)

试试这个:

    bool vowelOrNot(char x)
    {   if(x=='a' || x=='e' || x=='i' || x=='o' || x=='u' || x=='A' || x=='E' || x=='I' || x=='O' || x=='U')
         {
           cout<<"true"<<endl;
           return true;
          }

        else
        {
           cout<<"false"<<endl;
           return false;
        }
    }