首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C语言中解析Json字符串进行变量参数函数调用

在C语言中解析Json字符串进行变量参数函数调用
EN

Stack Overflow用户
提问于 2017-03-05 19:52:20
回答 1查看 204关注 0票数 0

在其中一个模块中,通过套接字接收Json字符串。json字符串具有名为"args“的数组对象。

该数组可以有任意数量的对象,甚至可以是零。每个对象都有类型和值。类型可以是%s%d。值可以包含字符串或整数,如类型所示。

例如:

代码语言:javascript
复制
args: [ {type: "%d", value: 10}, {type:"%s", value: "abc"}, ...]

收到json字符串后,需要调用一个变量参数函数。例如:

代码语言:javascript
复制
 cbptr_func("%d%s", 10, "abc");

由于每个类型说明符的数量和顺序在json字符串中不是固定的,有没有办法将参数传递给C语言中的函数。

干杯Gnana

EN

回答 1

Stack Overflow用户

发布于 2017-03-05 19:59:57

不,没有实际的方法来实现这一点。您不能在C中为函数创建动态数量的参数。

相反,您可能应该将格式字符串与一个int值数组和一个字符串值数组一起传递。对于您的示例,您可以像这样调用该函数:

代码语言:javascript
复制
cbptr_func("%d%s", (int[]){10}, (const char *[]){"abc"});

然后,当你从格式中读取%d时,你从int数组中读取值,当你读取%s时,你从字符串数组中读取值。

如果您的目标是使用printf函数,则必须为每个参数重复调用该函数一次,并在两次调用之间连接结果字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42608054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档