#include <stdio.h>
#include <string.h>
int main(void)
{
const char *data_ptr = "user=foo&password=bar"; // getenv("QUERY_STRING");
char data
[strlen(data_ptr
) + 1]; // +1 for the string terminator
char *name
= strtok(data
, "&"); while (name != NULL)
{
char *value_sep
= strchr(name
, '='); if (value_sep != NULL)
{
*value_sep = '\0';
char *value = ++value_sep;
printf("Name = %s\r\n", name
); printf("Value = %s\r\n", value
); }
else
{
printf("Malformed query string\r\n"); }
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBtYWluKHZvaWQpCnsKCWNvbnN0IGNoYXIgKmRhdGFfcHRyID0gInVzZXI9Zm9vJnBhc3N3b3JkPWJhciI7ICAvLyBnZXRlbnYoIlFVRVJZX1NUUklORyIpOwoJY2hhciBkYXRhW3N0cmxlbihkYXRhX3B0cikgKyAxXTsgIC8vICsxIGZvciB0aGUgc3RyaW5nIHRlcm1pbmF0b3IKCXN0cmNweShkYXRhLCBkYXRhX3B0cik7CgkKCWNoYXIgKm5hbWUgPSBzdHJ0b2soZGF0YSwgIiYiKTsKCXdoaWxlIChuYW1lICE9IE5VTEwpCgl7CgkgICAgY2hhciAqdmFsdWVfc2VwID0gc3RyY2hyKG5hbWUsICc9Jyk7CgkgICAgaWYgKHZhbHVlX3NlcCAhPSBOVUxMKQoJICAgIHsKCSAgICAgICAgKnZhbHVlX3NlcCA9ICdcMCc7CgkgICAgICAgIGNoYXIgKnZhbHVlID0gKyt2YWx1ZV9zZXA7CgkKCSAgICAgICAgcHJpbnRmKCJOYW1lID0gJXNcclxuIiwgbmFtZSk7CgkgICAgICAgIHByaW50ZigiVmFsdWUgPSAlc1xyXG4iLCB2YWx1ZSk7CgkgICAgfQoJICAgIGVsc2UKCSAgICB7CgkgICAgICAgIHByaW50ZigiTWFsZm9ybWVkIHF1ZXJ5IHN0cmluZ1xyXG4iKTsKCSAgICB9CgkKCSAgICBuYW1lID0gc3RydG9rKE5VTEwsICImIik7Cgl9CgoJcmV0dXJuIDA7Cn0K