你好,我正在上课的猪拉丁语,指令是第一个辅音是从单词的前面删除,并放在单词的背面。然后是字母" ay。"例如,书变成了ookbay,而力量变得引人注目。我遇到了麻烦,因为它没有做第一个辅音。
// button, three, nix, eagle, and troubadour
Console.Write("Enter word you want in Pig Latin: ");
string word1 = Console.ReadLine();
string pig = "";
string vowels = "aeiouAEIOU";
string space = " ";
string extra = ""; //extra letters
int pos = 0; //position
foreach (string word in word1.Split())
{
if (pos != 0)
{
pig = pig + space;
}
else
{
pos = 1;
}
vowels = word.Substring(0,1);
extra = word.Substring(1, word.Length - 1);
pig = pig + extra + vowels + "ay";
}
Console.WriteLine(pig.ToString());
例如,如果我做力量,它将作为强力而不像示例
答案 0 :(得分:3)
你在那里遇到了很多问题。首先,您对问题的定义:
指令是第一个辅音从单词前面删除
这正是你所做的。如果您移动第一个辅音,strength
会成为trengths
。您需要将定义更改为 所有主要辅音直到第一个元音 。另外,在eagle
的情况下你做了什么?是eagleay
吗?您的说明没有说明如何处理领先的元音。
这是另一个问题
vowels = word.Substring(0,1); // This will overwrite your vowel array with the first letter
不要担心编写真正的代码,编写一些伪代码来首先计算出你的逻辑。 @Chris关于寻找第一个元音的评论很好。您的伪代码可能类似于:
Check if word begins with consonant
{
If so, look for index of first vowel
Take substring of word up to first vowel.
Append it to end
}
Otherwise
{
Deal with leading vowel
}