C語言是一種廣泛應用的編程語言,其有許多優秀的數據結構,如鏈表(list)。在日常開發中,需要將鏈表轉化為可讀性高的json字符串數組,以便于在不同平臺間傳遞數據。下面我們來看看如何通過C語言實現這一過程。
#include#include #include #include /* 鏈表節點 */ struct Node { int data; //節點數據 struct Node* next; //指向下一個節點的指針 }; typedef struct Node node; /* 對鏈表進行json數組格式化 */ char* list_to_json_array(node* head) { int length = 0; //節點數 node* cur = head; //輔助指針 while(cur != NULL) { length++; //節點數加1 cur = cur->next; //移動指針到下一個節點 } /* 開始數組格式化 */ char* result = (char*)malloc(sizeof(char) * (length * 12 + 3)); //存放結果的字符串 strcat(result, "["); //添加起始括號 cur = head; //重新初始化輔助指針 while(cur != NULL) { char* temp_str = (char*)malloc(sizeof(char) * 12); //輔助字符串 sprintf(temp_str, "%d", cur->data); //轉化為字符串 strcat(result, temp_str); //添加數據 free(temp_str); //釋放輔助字符串 if(cur->next != NULL) { //添加逗號 strcat(result, ","); } cur = cur->next; //移動指針到下一個節點 } strcat(result, "]"); //添加末尾括號 return result; } int main() { /* 創建鏈表 */ node* head = (node*)malloc(sizeof(node)); head->data = 1; head->next = (node*)malloc(sizeof(node)); head->next->data = 2; head->next->next = NULL; /* 轉化為json數組 */ char* result = list_to_json_array(head); /* 打印結果 */ printf("%s\n", result); /* 釋放鏈表和字符串內存 */ free(head->next); free(head); free(result); return 0; }
上述代碼通過訪問鏈表中的每一個節點,并按照json數組格式對節點數據進行格式化,最終得出一個可讀性高的json字符串數組。使用這種方法,我們可以實現在不同平臺間的數據傳遞與交換。
下一篇python+nx開發