Commit 3d3efe7c authored by Andrey Morozov's avatar Andrey Morozov

fixed sub algorithm in CommandLineParser

parent 5e831f7f
...@@ -50,32 +50,35 @@ void helpParser() ...@@ -50,32 +50,35 @@ void helpParser()
vector<string> split_string(const string& str, const string& delimiters) vector<string> split_string(const string& str, const string& delimiters)
{ {
vector<string> res; vector<string> res;
string::size_type lastPos = str.find_first_not_of(delimiters, 0);
string::size_type pos = str.find_first_of(delimiters, lastPos); string split_str = str;
while (string::npos != pos || string::npos != lastPos) int pos_delim = split_str.find(delimiters);
{
while ( pos_delim != string::npos)
res.push_back(str.substr(lastPos, pos - lastPos)); {
lastPos = str.find_first_not_of(delimiters, pos); if (pos_delim == 0)
if (str[pos + 1] == '|' && str[pos] == '|') {
{ res.push_back("");
res.push_back(""); split_str.erase(0, 1);
if(str[pos + 2] == '|') }
res.push_back(""); else
} {
if (str[pos + 1] == '\0') res.push_back(split_str.substr(0, pos_delim));
res.push_back(""); split_str.erase(0, pos_delim + 1);
pos = str.find_first_of(delimiters, lastPos); }
}
pos_delim = split_str.find(delimiters);
return res; }
res.push_back(split_str);
return res;
} }
CommandLineParser::CommandLineParser(int argc, const char* const argv[], const char* keys) CommandLineParser::CommandLineParser(int argc, const char* const argv[], const char* keys)
{ {
std::string keys_buffer;
std::string keys_buffer;
std::string values_buffer; std::string values_buffer;
std::string buffer; std::string buffer;
std::string curName; std::string curName;
...@@ -188,8 +191,6 @@ CommandLineParser::CommandLineParser(int argc, const char* const argv[], const c ...@@ -188,8 +191,6 @@ CommandLineParser::CommandLineParser(int argc, const char* const argv[], const c
printf("The current parameter is not defined: %s\n", curName.c_str()); printf("The current parameter is not defined: %s\n", curName.c_str());
isFound = false; isFound = false;
} }
} }
bool CommandLineParser::has(const std::string& keys) bool CommandLineParser::has(const std::string& keys)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment