c - 警告 : missing terminating "character [enabled by default]

标签 c string-literals json-c

我在下面收到这个奇怪的错误

json.c:81:19: warning: missing terminating " character [enabled by  default]
json.c:81:3: error: missing terminating " character
json.c:82:32: error: expected ‘,’ or ‘;’ before ‘:’ token
json.c:90:22: warning: missing terminating " character [enabled by default]
json.c:90:21: error: missing terminating " character

代码:

int main()
{
  char * string = "{
                  "sender" : "joys of programming",

                   "receiver": [ "123",
                                 "345",
                                 "654",
                                 "432"
                               ]

                }";
 printf("JSON string: %sn", string);
 json_object * jobj = json_tokener_parse(string);
 json_parse(jobj);
 return 0;
 }

我知道错误是关于 char * string 行的。但不知道如何修复它。

最佳答案

你必须:

  1. 转义 " 字符,因为它是一个特殊的字符,用于定义 C 字符串文字。
  2. 对于多行字符串,您必须使用 "" 将每一行定义为单个 C 字符串

因此,生成的代码是

  char * string = "{"
                  "\"sender\" : \"joys of programming\","
                  "\"receiver\": [ \"123\","
                                  "\"345\","
                                  "\"654\","
                                  "\"432\""
                                "]"
                 "}";

关于c - 警告 : missing terminating "character [enabled by default],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37393644/

相关文章:

c++ - C 和 C++ 之间的字符串字面量差异

c++ - 开关中可以有开关吗?

objective-c - 有没有办法检查进程是 64 位还是 32 位?

c++ - 相同内容字符串文字的存储是否保证相同?

php - 使用PHP循环代码

c - 如何从文件中读取和写入 JSON 数据

c - 你如何从文件中读入结构数组?

c - 如何在c中使用fopen "w+"来写入和读取同一个文件?

C编程中对字符串的混淆