2017-02-14 2 views
0

Ich brauche getline(infile, aSentence) auf 4 verschiedene Sätze in einer Datei und speichern Sie sie als Zeichenfolgen. Dann muss ich einen Algorithmus erstellen, um den ersten Buchstaben jedes Wortes in den letzten Buchstaben zu verschieben und dann "ay" an das Wort anzuhängen.String finden, ersetzen, und fügen Sie Algorithmus in C++

Zum Beispiel: „Sie können mich claptrap nennen“ wird „ouyay aymay allcay Emay laptrapcay“

Was ist der beste Weg, dies zu tun? Ich dachte über die Verwendung von aSentence.find(" ") für den Leerraum und aSentence.append, um "ay" hinzuzufügen. Ich habe keine Ahnung, wie ich die Briefposition verschieben soll.

Hoffentlich macht das Sinn, danke.

Code I bisher haben (unvollständig, aber es ist das Konzept):

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

In welcher Sprache? Oder suchst du Pseudocode? –

+0

Wenn Sie etwas Code versucht haben, setzen Sie es in die Frage ein, es wäre einfacher, Hilfe zu bekommen! –

+0

Entschuldigung, in C++. Hier ist, was ich bisher habe, teilweise Pseudocode, aber es ist das Konzept. – kekstorm

Antwort

0

Das erste, was ist Ihre Funktion Prototyp

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

nun einen Komponententest schreiben für sie zu schreiben. Pass in Hallo Welt! und zurück elloHay orlday! oder was auch immer du bekommen solltest.

Jetzt bekommen Sie es durch den Komponententest. Wenn Sie eine Indexvariable i durch das Englische übergeben und an das Schwein Latein anhängen, dann kann ich in drei Zuständen sein, nicht Wort (in Leerzeichen oder Satzzeichen), Wort oder Anfangsbuchstaben. Wir können 1-Buchstaben-Wörter haben, so dass wir vom Anfangsbuchstaben zum Nicht-Wort wechseln können, aber nicht vom Nicht-Wort zum Ein-Wort, wir müssen durch den Anfangsbuchstaben gehen. Wenn Sie den Anfangsbuchstaben eingeben, speichern Sie den Brief vorübergehend. Wenn Sie in den Off-Word-Zustand gehen, schreiben Sie es aus und fügen Sie ein "ay" hinzu. Ansonsten schreibe den Charakter, den du gerade gelesen hast. Anfangszustand ist nicht Wort.