簡體   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