字符串在C ++中查找,替换和附加算法

时间:2017-02-14 07:14:45

标签: c++ string replace find append

我需要在文件中的4个不同句子上使用getline(infile, aSentence)并将它们存储为字符串。然后,我必须创建一个算法,将每个单词的第一个字母移动到最后一个字母,然后在单词后附加“ay”。

例如:“你可以叫我claptrap”将成为“ouyay aymay allcay emay laptrapcay”

最好的方法是什么?我正考虑将aSentence.find(" ")用于空格,aSentence.append添加“ay”。我不知道如何移动信件位置。

希望这是有道理的,谢谢。

我到目前为止的代码(不完整,但这是概念):

int characterIndex = 0;
char firstChar = sentence.at(characterIndex);
char currentChar = sentence.at(characterIndex);
while (currentChar != '.');
{
    if(currentChar == ' ')
    {
        sentence.replace(characterIndex, "ay")
    }
}

1 个答案:

答案 0 :(得分:0)

首先要写你的函数原型

  std::string toPigLatin(const std::string &english);

现在为它编写单元测试。传入Hello世界!并且回到elloHay orlday!或者你应该得到的。

现在通过单元测试得到它。如果你通过英语传递一个索引变量i,并附加到猪拉丁语,那么我可以处于三个状态,即字外(空格或标点符号),单词或首字母。我们可以有1个字母的单词,所以我们可以从最初的字母转到off-word,但不是从off-word到on-word,我们必须通过最初的字母状态。 当您输入首字母状态时,请将该字母存储为临时字母。当你进入关键词状态时,写出来并附加一个" ay"。否则写出你刚读过的角色。初始状态是离线的。