使用C语言解析字符串 - 哪种工具最适合?

3

我得到了一个这样的字符串:

Stuff: </value_1/value_2/value_3>; key="value"

我需要解析出value_1value_2value_3,以及key/value对。字符串中可能存在value_3,也可能不存在。

C语言应该使用什么方法来完成这个任务?

我考虑过sscanf,但是这些值的大小是任意的,所以它们应该动态分配内存。我的下一个想法是使用strtok,但这可能需要两个独立的循环来提取/分隔的值和key/value对...似乎很麻烦,但至少可以做到。

有经验的C程序员有更好的想法吗?

编辑:正则表达式可能是一种选择,但如果可能的话,我更喜欢标准字符串函数。


如果格式完全固定且明确,你可以考虑使用正则表达式库。 - Mat
value_1等的类型是字符串还是整数? - Clifford
2个回答

1

如果您使用"</>; =\"" 作为分隔符集,则strtok()将在单次遍历中工作,依次提取:

Stuff:
value_1
value_2
value_3
key
value

不确定 Stuff: 是什么,或者在提取中是否需要它,或者只是你的省略。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接