在 C 語言中,有時需要將一些字符串轉換為 JSON 格式。在實際操作中,我們經常會遇到字符串中包含有換行符的情況。這時,我們需要考慮如何將這些換行符轉義并包含在 JSON 字符串中。
下面是一個將 C 字符串轉換為 JSON 格式的示例代碼:
#include <stdio.h> #include <string.h> #include <stdbool.h> char *escape_string(char *str) { static char buffer[4096]; char *p = buffer; while (*str) { switch (*str) { case '\"': *p++ = '\\'; *p++ = '\"'; break; case '\\': *p++ = '\\'; *p++ = '\\'; break; case '\b': *p++ = '\\'; *p++ = 'b'; break; case '\f': *p++ = '\\'; *p++ = 'f'; break; case '\n': *p++ = '\\'; *p++ = 'n'; break; case '\r': *p++ = '\\'; *p++ = 'r'; break; case '\t': *p++ = '\\'; *p++ = 't'; break; default: *p++ = *str; break; } str++; } *p = '\0'; return buffer; } void print_json_string(char *str) { printf("\"%s\"", escape_string(str)); } int main() { char *str = "Hello,\nworld!"; printf("{\n"); printf("\t\"message\": "); print_json_string(str); printf("\n}\n"); return 0; }
在這個示例程序中,我們定義了一個 escape_string 函數來轉義字符串中的特殊字符。該函數使用一個靜態的緩沖區來存儲轉義后的字符串,并返回該緩沖區的指針。
我們還定義了一個 print_json_string 函數,它使用 escape_string 函數來轉義字符串并將其打印為 JSON 格式的字符串。
在主函數中,我們定義了一個字符串,其中包含一個換行符。然后,我們使用 printf 函數打印出一個 JSON 格式的對象,并包含了該字符串的值。
運行該程序,我們可以得到以下輸出:
{ "message": "Hello,\\nworld!" }
可以看到,我們成功將字符串中的換行符轉義,并將其包含在 JSON 字符串中。
上一篇vue減像素嗎