47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
|
#include <vector>
|
||
|
#include <string>
|
||
|
using namespace std;
|
||
|
#include <cstdlib>
|
||
|
#include "util.h"
|
||
|
#include <iostream>
|
||
|
|
||
|
vector<string> tokenize(const string & str, const string & delimiters) {
|
||
|
//tokenizes a string by the delimiter passed in
|
||
|
vector<string> tokens;
|
||
|
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 or string::npos != lastPos)
|
||
|
{
|
||
|
tokens.push_back(str.substr(lastPos, pos - lastPos));
|
||
|
lastPos = str.find_first_not_of(delimiters, pos);
|
||
|
pos = str.find_first_of(delimiters, lastPos);
|
||
|
}
|
||
|
return tokens;
|
||
|
}
|
||
|
|
||
|
bool parse_n_load(const string & input, string & name, string & type,
|
||
|
double & pay_rate) {
|
||
|
vector<string> tokens = tokenize(input);
|
||
|
if(tokens.size() == 0) {
|
||
|
return false;
|
||
|
}
|
||
|
type = tokens[0];
|
||
|
if (not ( type == "A"
|
||
|
or type == "F"
|
||
|
or type == "H"
|
||
|
or type == "S")) {
|
||
|
return false;
|
||
|
}
|
||
|
pay_rate = atof(tokens[1].c_str());
|
||
|
if(pay_rate == 0) {
|
||
|
return false;
|
||
|
}
|
||
|
for(unsigned int i = 2; i < tokens.size(); i++) {
|
||
|
name += tokens[i];
|
||
|
if(i < tokens.size() - 1) {
|
||
|
name += " ";
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|