#include <iostream>
#include <string>
#include <vector>
#include "strlib.h"
using namespace std;
namespace StrLib {
string test()
{
string s("Hey!");
return s;
}
string oneArg(string& arg)
{
string s, buf;
for ( string::iterator c = arg.begin(); c != arg.end(); c++ ) {
s = *c;
if (s == " ") break;
else buf += s;
}
arg.replace(0,buf.length()+1, "");
return buf;
}
bool isMatch(const string& arg, const string& str)
{
vector<string> alist = argList(str);
vector<string>::const_iterator s;
for ( s = alist.begin(); s != alist.end(); s++ ) {
if (isPrefix(arg, *s))
return true;
}
return false;
}
bool isPrefix(const string& arg, const string& str)
{
string buf;
buf.assign(str, 0, arg.length());
if (toLower(buf) == toLower(arg)) return true;
else return false;
}
string toLower(const string& str)
{
string buf, s;
s += str;
for ( string::iterator c = s.begin(); c != s.end(); c++ ) { buf += tolower(*c); }
return buf;
}
string toUpper(const string& str)
{
string buf, s;
s += str;
for ( string::iterator c = s.begin(); c != s.end(); c++ ) { buf += toupper(*c); }
return buf;
}
vector<string> argList(const string& str)
{
string buf, s;
vector<string> v;
string::const_iterator c;
s += str; s += ' ';
for ( c = s.begin(); c != s.end(); c++ ) {
if ( *c != ' ' ) buf += *c;
else {
v.push_back(buf);
buf = "";
}
}
return v;
}
};