Парсинг строки ключ1=значение1&ключ2=значение2&...&ключN=значениеN
Добавлено: 14 авг 2024, 17:04
Парсинг строки ключ1=значение1&ключ2=значение2&...&ключN=значениеN
Мы используем <iostream> для вывода, <string> для работы со строками, <map> для хранения пар ключ-значение и <sstream> для разбиения строки на части.
Функция parseData: Эта функция принимает строку, разбивает её на части, разделённые &, а затем на каждую пару ключ-значение, разделённую =. Она сохраняет эти пары в std::map, где ключи и значения имеют тип std::string.
компиляция
Код: Выделить всё
#include <iostream>
#include <string>
#include <map>
#include <sstream>
std::map<std::string, std::string> parseData(const std::string& data) {
std::map<std::string, std::string> result;
std::string keyValuePair;
std::istringstream stream(data);
while (std::getline(stream, keyValuePair, '&')) {
size_t pos = keyValuePair.find('=');
if (pos != std::string::npos) {
std::string key = keyValuePair.substr(0, pos);
std::string value = keyValuePair.substr(pos + 1);
result[key] = value;
}
}
return result;
}
int main() {
std::string data = "ключ1=значение1&ключ2=значение2&ключ3=значение3";
std::map<std::string, std::string> parsedData = parseData(data);
for (const auto& pair : parsedData) {
std::cout << pair.first << " = " << pair.second << std::endl;
}
return 0;
}
Функция parseData: Эта функция принимает строку, разбивает её на части, разделённые &, а затем на каждую пару ключ-значение, разделённую =. Она сохраняет эти пары в std::map, где ключи и значения имеют тип std::string.
компиляция
Код: Выделить всё
g++ -std=c++11 -o parse parse.cpp