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

fixed sub algorithm in CommandLineParser

parent 5e831f7f
......@@ -51,30 +51,33 @@ void helpParser()
vector<string> split_string(const string& str, const string& delimiters)
{
vector<string> res;
string::size_type lastPos = str.find_first_not_of(delimiters, 0);
string::size_type pos = str.find_first_of(delimiters, lastPos);
while (string::npos != pos || string::npos != lastPos)
{
res.push_back(str.substr(lastPos, pos - lastPos));
lastPos = str.find_first_not_of(delimiters, pos);
if (str[pos + 1] == '|' && str[pos] == '|')
string split_str = str;
int pos_delim = split_str.find(delimiters);
while ( pos_delim != string::npos)
{
if (pos_delim == 0)
{
res.push_back("");
if(str[pos + 2] == '|')
res.push_back("");
split_str.erase(0, 1);
}
if (str[pos + 1] == '\0')
res.push_back("");
pos = str.find_first_of(delimiters, lastPos);
else
{
res.push_back(split_str.substr(0, pos_delim));
split_str.erase(0, pos_delim + 1);
}
pos_delim = split_str.find(delimiters);
}
res.push_back(split_str);
return res;
}
CommandLineParser::CommandLineParser(int argc, const char* const argv[], const char* keys)
{
std::string keys_buffer;
std::string values_buffer;
std::string buffer;
......@@ -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());
isFound = false;
}
}
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