/////////////////////////////////////////////////////////////////////// // Utilities.cpp - small, generally usefule, helper classes // // ver 1.3 // // Language: C++, Visual Studio 2015 // // Application: Most Projects, CSE687 - Object Oriented Design // // Author: Jim Fawcett, Syracuse University, CST 4-187 // // jfawcett@twcny.rr.com // /////////////////////////////////////////////////////////////////////// #include #include #include "Utilities.h" using namespace Utilities; std::function Title = [](auto src) { StringHelper::Title(src, '='); }; std::function title = [](auto src) { StringHelper::Title(src, '-'); }; void StringHelper::title(const std::string& src) { std::cout << "\n " << src; std::cout << "\n " << std::string(src.size() + 2, '-'); } void StringHelper::Title(const std::string& src, char underline) { std::cout << "\n " << src; std::cout << "\n " << std::string(src.size() + 2, underline); } //std::vector StringHelper::split(const std::string& src) //{ // std::vector accum; // std::string temp; // size_t index = 0; // do // { // while ((isspace(src[index]) || src[index] == ',') && src[index] != '\n') // { // ++index; // if (temp.size() > 0) // { // accum.push_back(temp); // temp.clear(); // } // } // if(src[index] != '\0') // temp += src[index]; // } while (index++ < src.size()); // if(temp.size() > 0) // accum.push_back(temp); // return accum; //} void Utilities::putline() { std::cout << "\n"; } #ifdef TEST_UTILITIES int main() { Title("Testing Utilities Package"); putline(); title("test StringHelper::split(std::string)"); std::string test = "a, \n, bc, de, efg, i, j k lm nopq rst"; std::cout << "\n test string = " << test; std::vector result = StringHelper::split(test); std::cout << "\n"; for (auto item : result) { if (item == "\n") std::cout << "\n " << "newline"; else std::cout << "\n " << item; } std::cout << "\n"; title("test std::string Converter::toString(T)"); std::string conv1 = Converter::toString(3.1415927); std::string conv2 = Converter::toString(73); std::string conv3 = Converter::toString("a_test_string plus more"); std::cout << "\n Converting from values to strings: "; std::cout << conv1 << ", " << conv2 << ", " << conv3; putline(); title("test T Converter::toValue(std::string)"); std::cout << "\n Converting from strings to values: "; std::cout << Converter::toValue(conv1) << ", "; std::cout << Converter::toValue(conv2) << ", "; std::cout << Converter::toValue(conv3); std::cout << "\n\n"; return 0; } #endif