从字符串中取出键/值对并存储在地图中

时间:2011-09-20 14:54:29

标签: c++ string split

将字符串分成两部分的最佳方法是什么?我有这个,但不能得到'名称'正确,因为substr不允许我设置从哪里开始和从哪里完成,只有从哪里开始和有多少字符(我不知道):

string query = "key=value";
string key;
string value;
int positionOfEquals = query.find("=");
key = query.substr(0, positionOfEquals );
value = query.substr(positionOfEquals + 1);

1 个答案:

答案 0 :(得分:2)

你的方法很好,但你还有一个bug。如果没有'='怎么办?

string query = "key=value";
string key;
string value;
int positionOfEquals = query.find("=");
key = query.substr(0, positionOfEquals );
if(positionOfEquals != string::npos)
  value = query.substr(positionOfEquals + 1);