#include <iostream> #include <string> #include <cctype> using namespace std; struct Word { string english; string piglatin; }; Word *splitSentence(const string words, int &size); void convertToPigLatin(Word wordArr[], int size); void displayPigLatin(const Word wordArr[], int size); bool charCheck, check; int main() { string englishWord; int size = 1; Word *ptr; cout << "Please enter a string to convert to PigLatin:" << endl; getline(cin, englishWord); ptr = splitSentence(englishWord, size); convertToPigLatin(ptr, size); displayPigLatin(ptr, size); return 0; } Word* splitSentence(const string words, int &size) { int index = 0, wordsNum; string change; Word *ptr = NULL; string wordsCopy = words; for (int i = wordsCopy.size() - 1; i >= 0; i--) { wordsCopy[i] = tolower(wordsCopy[i]); // Checks for beginning or ending spaces if (isspace(wordsCopy[i]) && ((i == wordsCopy.size() - 1) || (i == 0))) { wordsCopy = wordsCopy.erase(i, 1); } // Checks for two spaces in a row else if (isspace(wordsCopy[i]) && ((isspace(wordsCopy[i-1])) || (isspace(wordsCopy[i+1])))) { wordsCopy = wordsCopy.erase(i, 1); } // Checks for punctuation or number else if ((!isalpha(wordsCopy[i])) && (!isspace(wordsCopy[i]))) { wordsCopy = wordsCopy.erase(i, 1); } // Counts words else if (isalpha(wordsCopy[i])) { wordsNum++; do { i--; } while (isalpha(wordsCopy[i]) && i > 0); i++; } } // Creates the new array of Words size = wordsNum; Word* temp = new Word[size]; for (int i = 0; i < size; i++) { temp[i].english = wordsCopy.substr(0, wordsCopy.find_first_of(' ')); // Grab the first word wordsCopy = wordsCopy.substr(wordsCopy.find_first_of(' ') + 1); // Strip the first word from the string } return temp;//return the array of strings } void convertToPigLatin(Word wordArr[], int size) { for (int i = 0; i < size; i++) { void convertToPigLatin(Word wordArr[], int size); { const int sizeVow = 5; int loopsNum = 0; bool checkVow; string vow ="aeiou"; do { checkVow = false; for(int i = 0; i < sizeVow; i++) { if((wordArr[loopsNum]).english[0] == vow[i]) { checkVow = true; break; } } if(checkVow == true) { wordArr[loopsNum].piglatin = wordArr[loopsNum].english; wordArr[loopsNum].piglatin += "way"; } else { wordArr[loopsNum].piglatin = wordArr[loopsNum].english; wordArr[loopsNum].piglatin.erase(0, 1); wordArr[loopsNum].piglatin += (wordArr[loopsNum].english)[0]; wordArr[loopsNum].piglatin += "ay"; } loopsNum++; } while(loopsNum < size); } void displayPigLatin(const Word wordArr[], int size); { cout<<"In piglatin:"<<endl; for(int i = 0; i < size; i++) { cout<<wordArr[i].piglatin; } cout<<endl; } } }
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}