[英]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.