C语言 如何转义字符串中的字符并显示转义字符



如何将放在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..)字符串在一起,你已经知道如何转义。

最新更新