【发布时间】:2014-08-12 10:48:53
【问题描述】:
如何在 C 中将 \ 放在字符串的 " 之前而不逐个字符地解析字符串?
实际上,我们正在使用sprintf 来获取字符串,并且我们正在形成 JSON 响应。但是 JSON 给了我们错误,因为它期望 \ 在 " 之前出现。
例如,如果字符串格式为:
"hi "hello" bye"
我应该得到它的格式
"hi \"hello\" bye"
【问题讨论】:
-
首先,我确定这是一个错字,但对我来说,反斜杠是
\,您可能需要编辑您的问题以反映这一点。第二,你不能逃掉sprintf中的"。可以给我们看看相关代码吗? -
code : json_resp->offset += sprintf(&json_resp->buffer[json_resp->offset], "\n\""JSON_FIELD_EVENT_SYNOPSIS"\": \"%s\",", utf8_str );这里 utf8_str 是在字符串之间包含双引号的字符串。所以我想在 " 之前添加反斜杠以提供正确的 JSON 格式,而不是逐个检查字符串中的字符
-
“不逐字符解析字符串”是什么意思?自己不这样做(所以你要求一个有这样做的函数的库)或者根本不这样做?如果您不知道需要转义的字符在哪里,则后者是不可能的。另请注意,JSON 需要用
"\\n"而不是"\\\n"等替换换行符。这些字符串是如何生成的?也许你可以在创建时处理这些角色。