【发布时间】:2021-07-28 05:53:39
【问题描述】:
大家好,我需要拆分一个字符串,例如,
["myroot", "prod1" , ["prod2", "a", "b","c"], "prod3", ["ext", "ali"] ]
输出:
myroot
prod1
prod2 a b c
prod3
ext ali
我是 C 编程语言的新手,但我需要弄清楚这个任务。我找不到这样做的好方法。我可以使用任何数据结构算法或方法来做到这一点吗?任何帮助将不胜感激。我不希望你分享代码,如果你能给我一些关于我可以使用的 c 函数和算法的想法,我将不胜感激。
【问题讨论】:
-
你以前写过分词器吗?听起来今天就是这一天。
-
@tadman 感谢您的建议,但如果使用带有 ',' 的 strtok,我还需要将大括号内的字符串作为一个整体进行拆分,我实际上不会解决我的问题。
-
这看起来像 JSON,使用 JSON 解析库。
-
不要使用 strtok - 它不会告诉你它找到了哪个分隔符。编写您自己的解析器来分析每个字符并跟踪解析状态。或者只使用 flex 和 bison。
-
strtok()只是一个工具。 “标记器”可能比这复杂得多,并且需要解析这种类似 JSON 的数据。