#include <iostream>
#include <string.h>
// You don't need to copy these two functions in your arduino sketch
// It's just a quick re-creation because they are not available here
char * itoa(int val, char * s, int radix)
{
sprintf(s, "%d", val);
return s;
}
char * dtostrf(double val, signed char width, unsigned char prec, char * sout)
{
sprintf(sout, "%*.*f", width, prec, val);
return sout;
}
int main()
{
int IDX = 123;
bool VALUE = true;
float VOLTAGE = 1.2345f;
char str1[64];
snprintf(str1, sizeof(str1), "idx=%d&value=%s&voltage=%.2f", IDX, VALUE ? "true" : "false", VOLTAGE);
printf("str1 = <%s>\n", str1);
char str2[64];
char tmp[16];
strcpy(str2, "idx=");
strcat(str2, itoa(IDX, tmp, 10));
strcat(str2, "&value=");
strcat(str2, VALUE ? "true" : "false");
strcat(str2, "&voltage=");
strcat(str2, dtostrf(VOLTAGE, 0, 2, tmp));
printf("str2 = <%s>\n", str2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CgoKCi8vIFlvdSBkb24ndCBuZWVkIHRvIGNvcHkgdGhlc2UgdHdvIGZ1bmN0aW9ucyBpbiB5b3VyIGFyZHVpbm8gc2tldGNoCi8vIEl0J3MganVzdCBhIHF1aWNrIHJlLWNyZWF0aW9uIGJlY2F1c2UgdGhleSBhcmUgbm90IGF2YWlsYWJsZSBoZXJlCgpjaGFyICogaXRvYShpbnQgdmFsLCBjaGFyICogcywgaW50IHJhZGl4KQp7CglzcHJpbnRmKHMsICIlZCIsIHZhbCk7CglyZXR1cm4gczsKfQoKY2hhciAqIGR0b3N0cmYoZG91YmxlIHZhbCwgc2lnbmVkIGNoYXIgd2lkdGgsIHVuc2lnbmVkIGNoYXIgcHJlYywgY2hhciAqIHNvdXQpCnsKICAgIHNwcmludGYoc291dCwgIiUqLipmIiwgd2lkdGgsIHByZWMsIHZhbCk7CiAgICByZXR1cm4gc291dDsKfQoKCgppbnQgbWFpbigpCnsKCWludCBJRFggPSAxMjM7Cglib29sIFZBTFVFID0gdHJ1ZTsKCWZsb2F0IFZPTFRBR0UgPSAxLjIzNDVmOwoJCgljaGFyIHN0cjFbNjRdOwoJc25wcmludGYoc3RyMSwgc2l6ZW9mKHN0cjEpLCAiaWR4PSVkJnZhbHVlPSVzJnZvbHRhZ2U9JS4yZiIsIElEWCwgVkFMVUUgPyAidHJ1ZSIgOiAiZmFsc2UiLCBWT0xUQUdFKTsKCXByaW50Zigic3RyMSA9IDwlcz5cbiIsIHN0cjEpOwoJCgljaGFyIHN0cjJbNjRdOwoJY2hhciB0bXBbMTZdOwoJc3RyY3B5KHN0cjIsICJpZHg9Iik7CglzdHJjYXQoc3RyMiwgaXRvYShJRFgsIHRtcCwgMTApKTsKCXN0cmNhdChzdHIyLCAiJnZhbHVlPSIpOwoJc3RyY2F0KHN0cjIsIFZBTFVFID8gInRydWUiIDogImZhbHNlIik7CglzdHJjYXQoc3RyMiwgIiZ2b2x0YWdlPSIpOwoJc3RyY2F0KHN0cjIsIGR0b3N0cmYoVk9MVEFHRSwgMCwgMiwgdG1wKSk7CglwcmludGYoInN0cjIgPSA8JXM+XG4iLCBzdHIyKTsKCQoJcmV0dXJuIDA7Cn0=