调用strcat时发生异常

调用strcat时发生异常,c,strcat,C,Strcat,我是C新手,需要将JSON写入文件。 我真的花了一个小时寻找一种工作方式,将int添加到str 这是我的密码: int day = 1; char strDay = (char) day; char str[100]; strcpy(str, "Blockchain"); strcat(str, strDay); 在strcat呼叫之前,一切正常。 提前谢谢 编辑:我正在使用parson将结构写入文件。以下是JSON文件的外观: { "Blockchain": { "Block1":

我是C新手,需要将JSON写入文件。 我真的花了一个小时寻找一种工作方式,将int添加到str

这是我的密码:

int day = 1;

char strDay = (char) day;
char str[100];
strcpy(str, "Blockchain");
strcat(str, strDay);
在strcat呼叫之前,一切正常。 提前谢谢

编辑:我正在使用parson将结构写入文件。以下是JSON文件的外观:

{
"Blockchain": {
    "Block1": {
        "Day": 2,
        "Transaction1": {
            "ID": 1,
            "Amount": 2
        }
    },
    "Block2": {
        "Transaction2": {
            "ID": 2,
            "Amount": 5
        }
    }
}}
为此,我使用parson库,其工作原理如下:

json_object_dotset_number(root_object, "Blockchain.Block1.Transaction1.ID", tmpTransaction->accountID);

我需要一种方法来创建多个块和事务,这就是为什么我想在块中添加日期,在事务中添加id。

正如您可能已经意识到的那样,
strcat
只对字符串有效。您应该调查
sprintf
snprintf
。例如:

{
  char string[80];
  int dayNumber;

  dayNumber = 27;
  sprintf(string, "\"Block1\": {\n\t\"Day\": %d,\n", dayNumber);
...

显然,我并不是要创建整个字符串。此外,这决不能被视为完整的代码。使用幻数(如80个字符的字符串缓冲区)是不好的做法。这只是一个例子。

这段代码甚至不应该编译。解析JSON需要如何在字符串中添加
int
?strcat()第二个参数不是字符串,哦,所以“parse”实际上是指生成JSON?请特别参阅。