在C語言中,我們經常需要使用JSON格式來處理數據。JSON格式的數據通常是用中括號包裹的數組或者用大括號包裹的鍵值對。
但是有時候我們在處理JSON數據時,需要將返回的JSON數組去掉中括號。這時候我們可以使用C語言中的字符串處理函數strtok和strchr來實現。
// 去掉JSON數組中的中括號 char* remove_brackets(char* json_str) { char* result = (char*)malloc(sizeof(char) * strlen(json_str)); char* token; char* delimiter = ","; int i = 0; if (json_str[0] == '[' && json_str[strlen(json_str)-1] == ']') { json_str[strlen(json_str)-1] = '\0'; // 將最后一個]替換成\0 token = strtok(json_str+1, delimiter); // 跳過第一個[ while (token != NULL) { strcat(result, token); strcat(result, ","); token = strtok(NULL, delimiter); } result[strlen(result)-1] = '\0'; // 去掉末尾多余的逗號 } else { strcpy(result, json_str); } return result; }
上面的代碼首先判斷傳入的JSON字符串是否有中括號包裹,如果有則使用strtok函數將字符串拆分成每個元素,然后再使用strcat函數將所有元素拼接在一起,中間用逗號隔開。最后,去掉末尾多余的逗號并返回結果。
需要注意的是,返回的字符串需要使用malloc函數動態分配內存,以避免指針失效。同時,在調用完strtok函數后,token指向的是去掉第一個中括號之后的第一個元素,因此需要先調用一次strtok函數跳過第一個元素。
上一篇vue 靜態文件404
下一篇vue 頁面嵌入pdf