}
return 0;
}
+string trim(const string& str) {
+ size_t start = 0;
+ size_t end = str.size() - 1;
+ while (isspace(str[start]) != 0 && start <= end) {
+ ++start;
+ }
+ while (isspace(str[end]) != 0 && start <= end) {
+ --end;
+ }
+ if (start <= end) {
+ return str.substr(start, end - start + 1);
+ }
+ return string();
+}
int get_str_map(
const string &str,
if (equal == string::npos)
(*str_map)[*i] = string();
else {
- const string key = i->substr(0, equal);
+ const string key = trim(i->substr(0, equal));
equal++;
- const string value = i->substr(equal);
+ const string value = trim(i->substr(equal));
(*str_map)[key] = value;
}
}
ASSERT_EQ(0, get_str_map("", &str_map));
ASSERT_EQ(0u, str_map.size());
}
+ {
+ map<string,string> str_map;
+ ASSERT_EQ(0, get_str_map(" key1=val1; key2=\tval2; key3\t = \t val3; \n ", "\n;", &str_map));
+ ASSERT_EQ(4u, str_map.size());
+ ASSERT_EQ("val1", str_map["key1"]);
+ ASSERT_EQ("val2", str_map["key2"]);
+ ASSERT_EQ("val3", str_map["key3"]);
+ }
}
/*