2017-02-14 51 views
0

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

例如:“你可以叫我哗众取宠”将成为“ouyay aymay allcay亿美软通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") 
    } 
} 
+0

用什么语言?或者你在寻找伪代码? –

+0

如果你已经尝试了一些代码,把它放在问题中,它会更容易得到帮助! –

+0

对不起,在C++中。这是我迄今为止的部分伪代码,但它是一个概念。 – kekstorm

回答

0

的第一件事是写你的函数原型

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

现在为它编写单元测试。通过你好世界!并返回elloHay orday!或者你应该得到的东西。

现在通过单元测试了解它。如果你通过英文传递一个索引变量i,并追加到猪拉丁语中,那么我可以处于三种状态,即单词(空格或标点符号),单词或首字母。我们可以有1个字母的单词,所以我们可以从首字母到单词,但不是从单词到单词,我们必须经历初始字母状态。 当您输入初始字母状态时,将该字母存储在临时文件中。当你进入脱字状态时,写出来并附加一个“ay”。否则写出你刚才阅读的字符。初始状态是关键字。