windwos C语言实现将以逗号隔开的数据,转换成json格式
时间: 2024-02-18 07:59:32 浏览: 63
转化成json格式
3星 · 编辑精心推荐
实现步骤如下:
1. 定义一个结构体,用来保存数据。假设数据有两个字段,分别为name和age。
```c
typedef struct {
char name[20];
int age;
} Person;
```
2. 读取以逗号隔开的数据,并将其保存到Person结构体数组中。
```c
Person persons[10];
int count = 0;
char buffer[1024];
fgets(buffer, 1024, stdin); // 从标准输入读取数据
char *token = strtok(buffer, ",");
while (token != NULL) {
sscanf(token, "%[^:]:%d", persons[count].name, &persons[count].age); // 解析数据
count++;
token = strtok(NULL, ",");
}
```
3. 将数据转换成json格式。
```c
printf("[\n");
for (int i = 0; i < count; i++) {
printf(" {\n");
printf(" \"name\": \"%s\",\n", persons[i].name);
printf(" \"age\": %d\n", persons[i].age);
if (i == count - 1) {
printf(" }\n");
} else {
printf(" },\n");
}
}
printf("]\n");
```
完整代码如下:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char name[20];
int age;
} Person;
int main() {
Person persons[10];
int count = 0;
char buffer[1024];
fgets(buffer, 1024, stdin); // 从标准输入读取数据
char *token = strtok(buffer, ",");
while (token != NULL) {
sscanf(token, "%[^:]:%d", persons[count].name, &persons[count].age); // 解析数据
count++;
token = strtok(NULL, ",");
}
printf("[\n");
for (int i = 0; i < count; i++) {
printf(" {\n");
printf(" \"name\": \"%s\",\n", persons[i].name);
printf(" \"age\": %d\n", persons[i].age);
if (i == count - 1) {
printf(" }\n");
} else {
printf(" },\n");
}
}
printf("]\n");
return 0;
}
```
示例输入:
```
Tom:18,Jerry:20,Bob:25
```
示例输出:
```json
[
{
"name": "Tom",
"age": 18
},
{
"name": "Jerry",
"age": 20
},
{
"name": "Bob",
"age": 25
}
]
```
阅读全文