map<string, int> split(string inputstring, string c) {
vector<string> result;
map<string, int> temp_map;
string::size_type pos1 = 0, pos2 = 0;
string temp;
while (pos2 < inputstring.size()) {
pos2 = inputstring.find(c, pos2);
if (pos2 == -1) {
while (pos1 <inputstring.size()) {
if (isalpha(inputstring[pos1]))
temp += tolower(inputstring[pos1]);
pos1++;
}
if (temp.size())
temp_map[temp] ++;
break;
}
while (pos1 <pos2) {
if (isalpha(inputstring[pos1]))
temp += tolower(inputstring[pos1]);
pos1++;
}
pos2 += c.size();
if (temp.size())
temp_map[temp] ++;
result.push_back(temp);
temp = "";
pos1 = pos2;
}
return temp_map;
}
vector<int> split(string inputstring, string c) {
vector<int> result;
vector<string> temp_map;
string::size_type pos1 = 0, pos2 = 0;
string temp;
while (pos2 < inputstring.size()) {
pos2 = inputstring.find(c, pos2);
if (pos2 == -1) {
while (pos1 <inputstring.size()) {
if (isalnum(inputstring[pos1]))
temp += tolower(inputstring[pos1]);
pos1++;
}
if (temp.size())
temp_map.push_back(temp);
break;
}
while (pos1 <pos2) {
if (isalnum(inputstring[pos1]))
temp += tolower(inputstring[pos1]);
pos1++;
}
pos2 += c.size();
if (temp.size())
temp_map.push_back(temp);
temp = "";
pos1 = pos2;
}
for (vector<string>::size_type it = 0; it <temp_map.size(); it++) {
result.push_back(atoi(temp_map[it].c_str()));
}
return result;
}
vector<int> split(string inputstring, string c) {
vector<int> result;
vector<string> temp_map;
string::size_type pos1 = 0, pos2 = 0;
string temp;
while (pos2 < inputstring.size()) {
pos2 = inputstring.find(c, pos2);
if (pos2 == -1) {
while (pos1 <inputstring.size()) {
if (isalnum(inputstring[pos1]))
temp += tolower(inputstring[pos1]);
pos1++;
}
if (temp.size())
temp_map.push_back(temp);
break;
}
while (pos1 <pos2) {
if (isalnum(inputstring[pos1]))
temp += tolower(inputstring[pos1]);
pos1++;
}
pos2 += c.size();
if (temp.size())
temp_map.push_back(temp);
temp = "";
pos1 = pos2;
}
return temp_map;
}