#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* extractValueInLine(char* line) {
res[0] = '\0';
unsigned quoteCpt = 0;
for (unsigned i = 0; i < len; i++){
if (line[i] == '\"')
quoteCpt++;
else if (quoteCpt == 3) // If 3 quotes has been skipped
{
res
= realloc(res
, strlen(res
) + sizeof(char) + 1); // Free memory for additional char if (NULL == res)
fprintf(stderr
, "Not enough memory.\n"); else
{
char toAppend[2];
toAppend[1] = '\0';
toAppend[0] = line[i];
}
}
}
return res;
}
int main(void) {
// your code goes here
printf("%s", extractValueInLine
("\"key\":\"value\"")); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKY2hhciogZXh0cmFjdFZhbHVlSW5MaW5lKGNoYXIqIGxpbmUpIHsgCiAgaW50IGxlbiA9IHN0cmxlbiggbGluZSApOwogIGNoYXIqIHJlcyA9IG1hbGxvYygxKTsKICByZXNbMF0gPSAnXDAnOwogIHVuc2lnbmVkIHF1b3RlQ3B0ID0gMDsKICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuOyBpKyspewogICAgaWYgKGxpbmVbaV0gPT0gJ1wiJykKICAgICAgICBxdW90ZUNwdCsrOwogICAgZWxzZSBpZiAocXVvdGVDcHQgPT0gMykgLy8gSWYgMyBxdW90ZXMgaGFzIGJlZW4gc2tpcHBlZAogICAgewogICAgICAgIHJlcyA9IHJlYWxsb2MocmVzLCBzdHJsZW4ocmVzKSArIHNpemVvZihjaGFyKSArIDEpOyAvLyBGcmVlIG1lbW9yeSBmb3IgYWRkaXRpb25hbCBjaGFyCiAgICAgICAgaWYgKE5VTEwgPT0gcmVzKQogICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk5vdCBlbm91Z2ggbWVtb3J5LlxuIik7CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgY2hhciB0b0FwcGVuZFsyXTsKICAgICAgICAgICAgdG9BcHBlbmRbMV0gPSAnXDAnOwogICAgICAgICAgICB0b0FwcGVuZFswXSA9IGxpbmVbaV07CiAgICAgICAgICAgIHN0cmNhdChyZXMsIHRvQXBwZW5kKTsKICAgICAgICB9CiAgICB9CiAgfQogICAgcmV0dXJuIHJlczsKfQoKCmludCBtYWluKHZvaWQpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXByaW50ZigiJXMiLCBleHRyYWN0VmFsdWVJbkxpbmUoIlwia2V5XCI6XCJ2YWx1ZVwiIikpOwoJcmV0dXJuIDA7Cn0K