#include <cstdio>
#include <cstring>
#include <iostream>
const char* haystack = "\"weather\":[{\"id\":800,\"main\":\"Clear\",";
const char* needle = "\"main\":";
int main()
{
std::cout << "Parsing string: '" << haystack << "'\n";
if (const char* cursor = strstr(haystack, needle)) {
char buffer[100];
if (sscanf(cursor, "\"main\":\"%99[^\"]\",", buffer))
std::cout << "Parsed string: '" << buffer << "'\n";
else
std::cout << "Parsing error!\n";
} else {
std::cout << "Could not find '" << needle << "' in '" << haystack << "'\n";
}
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCmNvbnN0IGNoYXIqIGhheXN0YWNrID0gIlwid2VhdGhlclwiOlt7XCJpZFwiOjgwMCxcIm1haW5cIjpcIkNsZWFyXCIsIjsKY29uc3QgY2hhciogbmVlZGxlICAgPSAiXCJtYWluXCI6IjsKCmludCBtYWluKCkKewogICAgc3RkOjpjb3V0IDw8ICJQYXJzaW5nIHN0cmluZzogJyIgPDwgaGF5c3RhY2sgPDwgIidcbiI7CiAKICAgIGlmIChjb25zdCBjaGFyKiBjdXJzb3IgPSBzdHJzdHIoaGF5c3RhY2ssIG5lZWRsZSkpIHsKICAgICAgICBjaGFyIGJ1ZmZlclsxMDBdOwogICAgICAgIGlmIChzc2NhbmYoY3Vyc29yLCAiXCJtYWluXCI6XCIlOTlbXlwiXVwiLCIsIGJ1ZmZlcikpCiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiUGFyc2VkIHN0cmluZzogJyIgPDwgYnVmZmVyIDw8ICInXG4iOwogICAgICAgIGVsc2UgCiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiUGFyc2luZyBlcnJvciFcbiI7CiAgICB9IGVsc2UgewogICAgICAgIHN0ZDo6Y291dCA8PCAiQ291bGQgbm90IGZpbmQgJyIgPDwgbmVlZGxlIDw8ICInIGluICciIDw8IGhheXN0YWNrIDw8ICInXG4iOwogICAgfQp9