在C編程語言中生成JSON轉義字符是一項基本的技能,讓我們來看一下它是如何實現的。
#include <stdio.h> #include <stdlib.h> #include <string.h> char* json_escape_string(const char* str) { int str_len = strlen(str); char* escaped_str = (char*)malloc(sizeof(char) * (str_len * 2 + 1)); // 預留轉義空間 int j = 0; for (int i = 0; i< str_len; i++) { if (str[i] == '\"' || str[i] == '\\' || str[i] == '/') { // 需要進行轉義的字符 escaped_str[j++] = '\\'; escaped_str[j++] = str[i]; } else if (str[i] == '\b') { // 退格符 escaped_str[j++] = '\\'; escaped_str[j++] = 'b'; } else if (str[i] == '\f') { // 換頁符 escaped_str[j++] = '\\'; escaped_str[j++] = 'f'; } else if (str[i] == '\n') { // 換行符 escaped_str[j++] = '\\'; escaped_str[j++] = 'n'; } else if (str[i] == '\r') { // 回車符 escaped_str[j++] = '\\'; escaped_str[j++] = 'r'; } else if (str[i] == '\t') { // 制表符 escaped_str[j++] = '\\'; escaped_str[j++] = 't'; } else { // 不需要轉義的字符 escaped_str[j++] = str[i]; } } escaped_str[j] = '\0'; return escaped_str; } int main(void) { char* original_str = "Hello, \"world\"\n"; char* escaped_str = json_escape_string(original_str); printf("Original: %s\n", original_str); printf("Escaped: %s\n", escaped_str); free(escaped_str); return 0; }
這段代碼使用了一個自定義函數json_escape_string()
,它接收一個字符串作為輸入,并返回經過JSON轉義處理的字符串。該函數將原始字符串中需要轉義的特殊字符(如雙引號、反斜杠、換行符等)進行轉義,返回轉義后的字符串。在main()
函數中,我們調用了該函數并打印出了原始字符串和轉義后的字符串。