繁体   English   中英

strcat返回错误的字符

[英]strcat returning wrong character

我正在使用strcat构建字符串。 除了我要附加表示数组中数字的字符外,它均有效。 该行使用:

strcat(JsonDataStr, numsToSend[i]);

例如,将字符“ c”代替“ 1”。 如果我手动将字符放在双引号中,则可以使用,但是我想只包含一个字符的一维数组。

char JsonDataStr[20];

void buildJsonString(){

    int offset;
    char strtStr[] = "[{\""  ;
    char numStr[4];
    char numsToSend[4] = {'1', '2','3','4'};

    offset = sizeof(strtStr);

    strcat(JsonDataStr, strtStr);

    for(i = 0 ; i < 2 ; i++){
           strcat(JsonDataStr, JsonDataName);
           ByteToStr(i, numStr);
           strcat(JsonDataStr, numsToSend[i]);
           strcat(JsonDataStr, "\":\"");
    }
    strcat(JsonDataStr, "\"}]");
}

知道为什么会这样。

您不能像这样使用strcat 它将字符串追加到字符串,而不是单个字符追加到字符串。 一个快速的解决方法是将numsToSend作为char指针的数组代替:

char *numsToSend[4] = { "1", "2", "3", "4" };

除此之外,您可以编写一个附加字符为字符串的函数,看到这个答案的一个例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM