C語言中處理JSON格式數據時,經常需要去掉轉義符。下面介紹一種常用的方法。
#include <stdio.h> #include <string.h> void remove_escape(char* str) { int i, j; for (i = 0, j = 0; str[j]; ++i, ++j) { if (str[j] == '\\' && str[j + 1]) { ++j; } str[i] = str[j]; } str[i] = '\0'; } int main() { char json_str[100] = "{\"name\":\"Alice\",\"age\":23,\"address\":\"111\\\\222\"}"; printf("Before remove: %s\n", json_str); remove_escape(json_str); printf("After remove: %s\n", json_str); return 0; }
以上代碼中,remove_escape函數用于去掉轉義符。在處理字符串時,循環遍歷每個字符,當檢測到轉義符時,忽略下一個字符。
以上代碼的輸出:
Before remove: {"name":"Alice","age":23,"address":"111\\222"} After remove: {"name":"Alice","age":23,"address":"111\222"}
可以看到,轉義符已經被正確去掉了。