Pig拉丁控制台

本文关键字:控制台 Pig | 更新日期: 2023-09-27 18:29:11

嗨,我正在为课堂学习Pig拉丁语,说明是将单词前面的第一个辅音去掉,放在单词后面。然后是字母"ay"。例如,书变成了ookbay,力量变成了ength杂散。我遇到麻烦了,因为它不发音第一个辅音。

// 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());

例如,如果我做强度,它会显示为强度,而不像的例子

Pig拉丁控制台

这里有很多问题。首先,你对问题的定义:

指令是从单词的前面删除第一个辅音

这正是你所做的。如果移动第一个辅音,则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
}