gpt4 book ai didi

c++ - Pig Latin - 字符串

转载 作者:行者123 更新时间:2023-11-28 06:33:08 26 4
gpt4 key购买 nike

所以我应该使用 stringConvertToPigLatin(string word) 函数将英语单词转换为 Pig Latin。我在网上能找到的所有答案都是使用 char[],我不允许这样做。如果第一个字母是元音,该程序应该以添加 -way 开始,如果是辅音,则添加 -ay 。问题是它总是添加“-way”,即使我的“单词”根本没有元音。我究竟做错了什么?这是我的功能:

string ConvertToPigLatin(string word)
{
char first = word.at(0);
cout << first << endl;
if (first == 'a' || 'A' || 'e' || 'E' || 'i' || 'I' || 'o' || 'O' || 'u' || 'U')
{
word.append("-way");
}
else
{
word.append("-ay");
}
return word;
}

最佳答案

如评论中所述,您的 if 语句是错误的。每个比较都需要单独进行。来自评论。

if (first == 'a' || first == 'A' || first == 'e' || ...)

但是,与其使用长的 if 语句,不如考虑将所有元音字母填充到 string 中并使用 find。像下面的代码这样的东西会更容易阅读和遵循。

#include <iostream>
#include <string>
std::string ConvertToPigLatin(std::string word)
{
static const std::string vowels("aAeEiIoOuU");
char first = word.at(0);
std::cout << first << std::endl;
if (vowels.find(first) != std::string::npos)
{
word.append("-way");
}
else
{
word.append("-ay");
}
return word;
}


int main()
{
std::cout << ConvertToPigLatin("pig") << '\n';
std::cout << ConvertToPigLatin("alone") << '\n';
}

这输出

p
pig-ay
a
alone-way

关于c++ - Pig Latin - 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27198423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com