using ONLY the two libraries include include how could I c

using ONLY the two libraries (#include <string.h>, #include <iostream>), how could I create a function named trim designed specifically to remove any whitespace from the end of a string? This is my first C++ hw assignment. I\'m supposed to use void trim(std::string& s); or something a lot like it as the signature. Secondly, I\'m supposed to write a function named \"parenthetical\" with the following signature std::string parenthetical(const std::string& s); This function will return any text in the given string between an open parenthesis,‘(‘, and a closing parenthesis, ‘)’, returning the empty string if no such test exists. Lastly, I\'m supposed to create a main function that creates a few strings to test my functions. Just final details.. Call the trim function with a few of the strings that may or may not need trimming, printing out each string after each call. c. Call the parenthetical function with a few strings, some of which have parentheticals and some of which do not. I\'m totally confused and would need a walk through on how this is solved with any commentary you might able to offer. help!!

Solution

#include #include std::string trim(const std::string& str, const std::string& whitespace = \" \\t\") { const auto strBegin = str.find_first_not_of(whitespace); if (strBegin == std::string::npos) return \"\"; // no content const auto strEnd = str.find_last_not_of(whitespace); const auto strRange = strEnd - strBegin + 1; return str.substr(strBegin, strRange); } std::string reduce(const std::string& str, const std::string& fill = \" \", const std::string& whitespace = \" \\t\") { // trim first auto result = trim(str, whitespace); // replace sub ranges auto beginSpace = result.find_first_of(whitespace); while (beginSpace != std::string::npos) { const auto endSpace = result.find_first_not_of(whitespace, beginSpace); const auto range = endSpace - beginSpace; result.replace(beginSpace, range, fill); const auto newStart = beginSpace + fill.length(); beginSpace = result.find_first_of(whitespace, newStart); } return result; } int main(void) { const std::string foo = \" too much\\t \\tspace\\t\\t\\t \"; const std::string bar = \"one\ two\"; std::cout << \"[\" << trim(foo) << \"]\" << std::endl; std::cout << \"[\" << reduce(foo) << \"]\" << std::endl; std::cout << \"[\" << reduce(foo, \"-\") << \"]\" << std::endl; std::cout << \"[\" << trim(bar) << \"]\" << std::endl; }
using ONLY the two libraries (#include <string.h>, #include <iostream>), how could I create a function named trim designed specifically to remove an

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site