色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 用json截取字符串數組

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

在C語言中,對于字符串的處理是非常重要的,同時JSON也是一種常用的格式化數據的方式,很多時候需要從JSON串中解析出所需要的字符串,那么該如何用C語言對JSON串進行截取呢?下面我們就來介紹一下如何使用JSON截取字符串數組。

#include#include#include#define MAX_SIZE 1000
char* str_json = "{"name":"張三","age":28,"hobby":["籃球","游泳","音樂"]}";
int main()
{
char* str_hobby[MAX_SIZE] = {0};
int i = 0;
char* temp_str = NULL;
char* p = strtok(str_json, "{:\"[],}");
while(p != NULL)
{
if(strcmp(p, "hobby") == 0) // 找到hobby字段
{
p = strtok(NULL, "{:\"[],}");
while(p != NULL)
{
if(*p != '\0')
{
temp_str = (char*)malloc(strlen(p)+1); // 分配空間,存儲數據
memset(temp_str, 0, strlen(p)+1);
strncpy(temp_str, p, strlen(p));
str_hobby[i++] = temp_str; // 將字符串存入str_hobby數組中
}
p = strtok(NULL, "{:\"[],}");
}
break;
}
p = strtok(NULL, "{:\"[],}");
}
// 打印結果
for(int j = 0; j< i; ++j)
{
printf("%s\n", str_hobby[j]);
}
// 釋放空間
for(int j = 0; j< i; ++j)
{
free(str_hobby[j]);
str_hobby[j] = NULL;
}
return 0;
}

在上述代碼中,我們使用了strtok函數對JSON串進行分割,然后根據字段找到需要的內容,將它們存儲在str_hobby數組中,最后打印出來。需要注意的是,我們在存儲字符串的時候,需要動態分配空間,并在使用完畢后釋放空間,避免內存泄露。