欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c語言判斷字符串是否為json

傅智翔2年前7瀏覽0評論

C語言是一種計算機編程語言,它是一種高級語言,可以通過編譯轉化為機器碼。JSON是一種輕量級的數據交換格式,常用于前后端數據傳輸,也經常和C語言一起使用。接下來我們將介紹如何使用C語言判斷一個字符串是否為JSON格式。

#include <stdio.h>
#include <ctype.h>
int isJSON(char* str) {
int len = strlen(str);
if (str[0] != '{' || str[len-1] != '}') {
return 0;
}
int cnt = 0;
for (int i = 1; i< len-1; i++) {
char ch = str[i];
if (ch == '{') {
cnt++;
} else if (ch == '}') {
cnt--;
} else if (ch == ':') {
if (isspace(str[i-1]) || isspace(str[i+1])) {
return 0;
}
}
}
return cnt == 0;
}
int main() {
char* str1 = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }";
printf("%d\n", isJSON(str1)); // 輸出1
char* str2 = "hello world";
printf("%d\n", isJSON(str2)); // 輸出0
return 0;
}

上述代碼中我們使用了兩個關鍵函數,一個是 isJSON 函數,用于判斷字符串是否為 JSON 格式,另一個則是 isspace 函數,用于判斷字符是否為空格。isJSON 函數會先判斷字符串的首尾是否為 JSON 對象符號 { },如果不是,則肯定不是 JSON 格式,返回 0。接下來我們遍歷字符串的每一個字符,當遇到 { 符號時,計數器 cnt 加 1,當遇到 } 符號時,計數器 cnt 減 1。當遇到鍵值對時,判斷前后是否有空格,如果有,則返回 0,不是 JSON 格式。最后判斷計數器 cnt 是否為 0,如果為 0,說明所有的 { 和 } 成對出現,字符串符合 JSON 格式,返回 1,否則返回 0。

在 main 函數中,我們分別測試了兩個字符串,一個符合 JSON 格式,另一個不符合。第一個字符串輸出 1,表示符合 JSON 格式;第二個字符串輸出 0,表示不符合 JSON 格式。