]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/src/string.cpp
Luca, si podes lleva esto, no creo que termine nada mas hoy
[z.facultad/75.42/plaqui.git] / Server / src / string.cpp
index 24904a76c3bf00d751fa59fb21a7876fa3c6cf93..97dd19f5123eee3d9de4fd23ed59ef1ca38c983c 100644 (file)
 #include "plaqui/server/string.h"
 #include <cctype>
 #include <algorithm>
+#include <iterator>
+#include <sstream>
 #ifdef DEBUG
 #      include <iostream>
 #endif // DEBUG
 
-using namespace PlaQui::Server;
+using namespace std;
 
-const std::string String::SPACE_CHARS = " \t\n\r";
-                       
-String::String(const std::string& str): std::string(str.c_str()) {
+namespace PlaQui {
+
+namespace Server {
+
+const string String::SPACE_CHARS = " \t\n\r";
+
+String::~String(void) {
+}
+
+String::String(void) {
+}
+
+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) {
@@ -46,12 +63,37 @@ String& String::trim(const String& clist) {
 }
 
 String& String::to_lower(void) {
-       std::transform(begin(), end(), begin(), tolower);
+       transform(begin(), end(), begin(), ::tolower);
        return *this;
 }
 
 String& String::to_upper(void) {
-       std::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();
+}
+
+} // namespace Server
+
+} // namespace PlaQui
+