]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/src/string.cpp
- Se agrega una planta de prueba (usando Simulator).
[z.facultad/75.42/plaqui.git] / Server / src / string.cpp
index 15e783c63065677f14cc8e1426bff77a3cd0c45e..8f9b2dbe6b410677fced804480a3fa37ea7a9d8a 100644 (file)
@@ -28,6 +28,8 @@
 #include "plaqui/server/string.h"
 #include <cctype>
 #include <algorithm>
 #include "plaqui/server/string.h"
 #include <cctype>
 #include <algorithm>
+#include <iterator>
+#include <sstream>
 #ifdef DEBUG
 #      include <iostream>
 #endif // DEBUG
 #ifdef DEBUG
 #      include <iostream>
 #endif // DEBUG
@@ -43,10 +45,17 @@ const string String::SPACE_CHARS = " \t\n\r";
 String::~String(void) {
 }
 
 String::~String(void) {
 }
 
+String::String(void) {
+}
+
 String::String(const string& str):
                string(str.c_str()) {
 }
 
 String::String(const string& str):
                string(str.c_str()) {
 }
 
+String::String(const vector<string>& v, const string& sep) {
+       (*this) = join(v, sep);
+}
+
 String& String::trim(const String& clist) {
        erase(0, find_first_not_of(clist));
        erase(find_last_not_of(clist) + 1);
 String& String::trim(const String& clist) {
        erase(0, find_first_not_of(clist));
        erase(find_last_not_of(clist) + 1);
@@ -54,14 +63,50 @@ String& String::trim(const String& clist) {
 }
 
 String& String::to_lower(void) {
 }
 
 String& String::to_lower(void) {
-       transform(begin(), end(), begin(), tolower);
+       transform(begin(), end(), begin(), ::tolower);
        return *this;
 }
 
 String& String::to_upper(void) {
        return *this;
 }
 
 String& String::to_upper(void) {
-       transform(begin(), end(), begin(), toupper);
+       transform(begin(), end(), begin(), ::toupper);
+       return *this;
+}
+
+vector<string> String::split(char sep) const {
+       vector<string> v;
+       String::size_type start = 0;
+       String::size_type end = find(sep);
+       while (end != String::npos) {
+               v.push_back(substr(start, end - start));
+               start = end + 1;
+               end = find(sep, start);
+       }
+       if (start != length()) {
+               v.push_back(substr(start, end - start));
+       }
+       return v;
+}
+
+String String::join(const vector<string>& v, const string& sep) {
+       stringstream ss;
+       std::copy(v.begin(), v.end(), ostream_iterator<string>(ss, sep.c_str()));
+       return ss.str();
+}
+
+/*
+template < class T > T& String::to(T& p) const {
+       stringstream ss(*this);
+       ss >> p;
+       return p;
+}
+
+template < class T > String& String::from(const T& p) {
+       stringstream ss;
+       ss << p;
+       ss >> (*this);
        return *this;
 }
        return *this;
 }
+*/
 
 } // namespace Server
 
 
 } // namespace Server