在C語言中,我們經常會處理JSON數據。而有時候,我們會遇到JSON中有斜杠的情況,而我們需要去掉這些斜杠。那么,該如何實現呢?下面讓我們來看一下具體的實現方法。
#include <stdio.h> #include <stdlib.h> #include <string.h> //去掉JSON字符串中的反斜杠 char* remove_backslash(char* json_str) { if (json_str == NULL) { return NULL; } int len = strlen(json_str); char* new_str = (char*)malloc(len + 1); memset(new_str, 0, len + 1); char* p = new_str; for (int i = 0; i< len; i++) { if (json_str[i] == '\\') { i++; } *p++ = json_str[i]; } return new_str; } int main() { char json_str[] = "{\\\"name\\\": \\\"Allen\\\", \\\"age\\\": 25, \\\"sex\\\": \\\"male\\\"}"; printf("原始JSON字符串:\n%s\n", json_str); char* new_str = remove_backslash(json_str); printf("去掉反斜杠后的JSON字符串:\n%s\n", new_str); free(new_str); return 0; }
在這段代碼中,我們定義了一個remove_backslash(char* json_str)
函數,用于去掉JSON字符串中的反斜杠。在函數中,我們先判斷傳入的json_str
是否為空,然后計算出字符串的長度,為新字符串申請內存空間。接著,我們遍歷原來的JSON字符串,將反斜杠去掉,然后賦值給新的字符串。最后返回新字符串的指針。
在程序的主函數中,我們定義一個帶有反斜杠的JSON字符串,并通過printf()
函數輸出。然后,我們調用remove_backslash()
函數,將去掉反斜杠后的JSON字符串保存到new_str
中,再通過printf()
函數輸出。最后,我們釋放new_str
占用的內存。