string 转map
时间: 2023-07-01 11:07:15 浏览: 51
假设字符串的格式为 "key1=value1&key2=value2&key3=value3",可以按照以下方式转换为 map:
```c++
#include <iostream>
#include <string>
#include <map>
int main() {
std::string str = "key1=value1&key2=value2&key3=value3";
std::map<std::string, std::string> kv_map;
size_t pos = 0;
while (pos < str.length()) {
size_t equal_pos = str.find('=', pos);
size_t amp_pos = str.find('&', pos);
if (equal_pos == std::string::npos) {
break;
}
std::string key = str.substr(pos, equal_pos - pos);
std::string value;
if (amp_pos == std::string::npos) {
value = str.substr(equal_pos + 1);
} else {
value = str.substr(equal_pos + 1, amp_pos - equal_pos - 1);
}
kv_map[key] = value;
if (amp_pos == std::string::npos) {
break;
}
pos = amp_pos + 1;
}
for (const auto& kv : kv_map) {
std::cout << kv.first << " => " << kv.second << std::endl;
}
return 0;
}
```
输出结果为:
```
key1 => value1
key2 => value2
key3 => value3
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)