如何将放在C中字符串的
"
之前,而不是逐个字符解析字符串?
实际上,我们正在使用sprintf
来获取字符串,我们正在形成JSON响应。但是JSON给了我们错误,因为它期望在
"
之前。
例如,如果字符串的格式为:
"hi "hello" bye"
格式应该是
"hi "hello" bye"
通过在"
之前添加\
来转义sprintf中的反斜杠:
json_resp->offset += sprintf(&json_resp->buffer[json_resp->offset],
"n\""JSON_FIELD_EVENT_SYNOPSIS"\": \"%s\",", utf8_str);
您应该考虑使用snprintf
来避免缓冲区溢出。
一点一点看,不要一下子就被整件事搞糊涂了。
您希望看到,需要转义:
\
。
接下来,您希望看到"
,它也需要转义:"
。
所以全部加起来是:
printf("hi \"hello\" bye")
如果你像上面那样分解它,它看起来比实际上更令人讨厌和更令人困惑-它没有特殊的规则,它只是将(ahem..)字符串在一起,你已经知道如何转义。