C語言是一門廣泛應用于嵌入式系統和各種操作系統的高級編程語言,它可以方便地進行底層的硬件操作和系統編程。在C語言中,我們常常需要對字符串進行分析和處理,其中判斷一段文本是否為JSON格式就是相當常見的問題。
#include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <string.h> // 判斷是否為JSON格式 bool is_json(const char* str) { size_t len = strlen(str); int count = 0; // 記錄"{"和"}"的數量 for (int i = 0; i < len; i++) { if (str[i] == '{') { count++; } else if (str[i] == '}') { count--; } if (count < 0) { // 如果"}"的數量大于"{"的數量,說明格式錯誤 return false; } } return (count == 0); // 如果"{"和"}"的數量相等,則格式正確 } int main() { char str1[] = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }"; char str2[] = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" } "; if (is_json(str1)) { printf("str1 是 JSON 格式。\n"); } else { printf("str1 不是 JSON 格式。\n"); } if (is_json(str2)) { printf("str2 是 JSON 格式。\n"); } else { printf("str2 不是 JSON 格式。\n"); } return 0; }
上述代碼通過掃描輸入的字符串中“{”和“}”的數量,來判斷JSON格式的正確性。如果“}”出現在“{”之前,表明JSON格式錯誤。