Re: string split
"P. Lepin" <p.lepin@ctncorp.com> ha scritto nel messaggio
news:hj1a6f$ohq$1@solani.org...
P. Lepin
thanks this rocks!
#include <iostream>
#include <string>
#include <map>
#include <stdlib.h>
#include <assert.h>
using namespace std;
void chomp(string&);
pair<string,string> mysplit(string,string);
int main()
{
map<string,string> hash;
string line = "key: value\r\n";
chomp(line);
hash.insert(mysplit(line, ": "));
for(map<string,string>::const_iterator it=hash.begin(); it!=hash.end();
++it)
{
cout << it->first << "->" << it->second << endl;
}
system("pause");
return EXIT_SUCCESS;
}
void chomp(string& szString)
{
string whitespaces(" \t\f\v\n\r");
size_t found;
found=szString.find_last_not_of(whitespaces);
if (found!=string::npos)
szString.erase(found+1);
else
szString.clear();
}
pair<string,string> mysplit(string str, string delim)
{
string::size_type match = str.find(delim);
assert(match != string::npos);
return pair<string,string>(
string(str.begin(), str.begin() + match),
string(str.begin() + match + delim.length(), str.end())
);
}