C字符串是一種在C語言中處理文本數(shù)據(jù)的方式。在實際的開發(fā)中,常常需要將多個JSON字符串?dāng)?shù)組拼接成一個完整的JSON字符串。這時候,就需要使用C字符串來實現(xiàn)。
在C語言中,字符串是以'\0'(空字符)結(jié)尾的字符數(shù)組。為了拼接JSON字符串?dāng)?shù)組,我們需要創(chuàng)建一個大的字符數(shù)組,并將所有需要拼接的字符串依次拷貝到大的字符數(shù)組中。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *jsons[] = {"{\"name\":\"Tom\",\"age\":18}", "{\"name\":\"Jack\",\"age\":20}"}; int count = sizeof(jsons) / sizeof(jsons[0]); // 計算總長度 int totalLength = 0; for (int i = 0; i < count; i++) { totalLength += strlen(jsons[i]); } // 創(chuàng)建大的字符數(shù)組 char *result = (char*)malloc(totalLength + 3); result[0] = '['; // 拼接字符串 int currentPos = 1; for (int i = 0; i < count; i++) { strcpy(result + currentPos, jsons[i]); currentPos += strlen(jsons[i]); if (i < count - 1) { strcpy(result + currentPos, ","); currentPos++; } } result[currentPos] = ']'; result[currentPos + 1] = '\0'; printf("result: %s\n", result); free(result); return 0; }
代碼中,我們首先定義了一個JSON字符串?dāng)?shù)組jsons,然后計算了所有字符串的總長度。接下來,我們通過malloc函數(shù)來申請大的字符數(shù)組result,并在開頭添加了一個左中括號‘[’。之后,我們通過strcpy函數(shù)將所有JSON字符串依次拷貝到字符數(shù)組中,并在字符串之間添加逗號‘,’。最后,我們在結(jié)尾添加右中括號‘]’和空字符‘\0’。
運行上面的代碼,我們可以得到一個完整的JSON字符串?dāng)?shù)組:'[{"name":"Tom","age":18},{"name":"Jack","age":20}]'