我有字符数组这样的:用C字符串处理函数来解析char数组成C++的关键值映射
"CA: ABCD\0CB: ABFG\0CC: AFBV\0CD: 4567"
现在从值": "
分裂键,同时\0
分离对。我想使用strchr或memchr函数将键值对添加到C++中的映射中。有什么建议么?
我有字符数组这样的:用C字符串处理函数来解析char数组成C++的关键值映射
"CA: ABCD\0CB: ABFG\0CC: AFBV\0CD: 4567"
现在从值": "
分裂键,同时\0
分离对。我想使用strchr或memchr函数将键值对添加到C++中的映射中。有什么建议么?
东西沿着这些路线,也许是:
const char source[] = "CA: ABCD\0CB: ABFG\0CC: AFBV\0CD: 4567";
int len = sizeof(source);
std::map<std::string, std::string> pairs;
const char* end = source + len;
const char* start = source;
while (start < end) {
const char* sep = strchr(start, ':');
const char* pair_end = strchr(sep + 2, '\0');
pairs.emplace(std::string(start, sep), std::string(sep + 2, pair_end));
start = pair_end + 1;
}
我有一个建议。显示地图声明:) –
你打算如何知道字符串的结尾?换句话说,你将如何确定哪一对是最后一个? –
我只需要添加键和值我进入一个StringStringMap我已经定义了类似“values.insert(std :: pair(parsedKey,parsedValue))” –
Anonymous