X-Git-Url: https://git.llucax.com/z.facultad/75.29/susanita.git/blobdiff_plain/a86e26ae42584c979262de7f6ddefa815ac7c625..dc520fd7ae38100afa95ee803755495f277c6473:/src/parser.cpp?ds=sidebyside diff --git a/src/parser.cpp b/src/parser.cpp index f15b9c7..4bd29f1 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -16,11 +16,20 @@ Parser(Susanita& s): namespace { /// Saca espacios de una palabra - std::string strip(std::string s) - { - std::istringstream ss(s); - ss >> s; - return s; + std::string strip(std::string s) { + std::string ws = " \t\n"; + int first = s.find_first_not_of(ws); + int last = s.find_last_not_of(ws); + + if (first == -1) { + int pos_first = s.find_first_of(ws); + if (pos_first == -1) { + return s; + } else { + return std::string(""); + } + } + return s.substr(first,last-first+1).c_str(); } /// Devuelve palabra hasta el caracter indicado @@ -67,6 +76,10 @@ input(const std::string& filename) while (ss) { std::string nombre = get_hasta(ss, ','); + nombre = strip(nombre); + if (nombre.empty()) { + continue; + } Persona* ppp = susanita.get_persona(nombre); if (!ppp) {