用C解析字符串-什么是正确的工具?
我得到了以下格式的字符串:用C解析字符串-什么是正确的工具?,c,string,parsing,C,String,Parsing,我得到了以下格式的字符串: Stuff: </value_1/value_2/value_3>; key="value" Stuff:;key=“value” 我需要解析出的是value\u 1,value\u 2和value\u 3以及键/值对值_3可能存在于字符串中,也可能不存在于字符串中 为了完成这一点,在C中使用什么 我考虑过sscanf,但是这些值可以是仲裁大小,因此应该动态分配它们strtok可能是我的下一个想法,但这可能需要两个单独的循环来提取/分离的值和键/值对…
Stuff: </value_1/value_2/value_3>; key="value"
Stuff:;key=“value”
我需要解析出的是value\u 1
,value\u 2
和value\u 3
以及键
/值
对<代码>值_3可能存在于字符串中,也可能不存在于字符串中
为了完成这一点,在C中使用什么
我考虑过sscanf
,但是这些值可以是仲裁大小,因此应该动态分配它们strtok
可能是我的下一个想法,但这可能需要两个单独的循环来提取/
分离的值和键
/值
对…看起来很乏味,但至少是可行的
有C语言经验的人有更好的主意吗
编辑:正则表达式可以是一个选项,但如果可能的话,我更喜欢标准的字符串函数。您可以使用正则表达式;看 如果你不知道正则表达式是什么;看 这里有一个在线的(或者,如果你没有安装Flash),所以你可以测试你的regexp 如果使用
“;=\”
作为分隔符集,则strtok()将在一个过程中工作,依次提取:
Stuff:
value_1
value_2
value_3
key
value
不确定什么是<代码>:是提取中需要的或是需要的,或者只是在您的部分上进行一次洗脱。
如果格式是完全固定的和不含糊的,则可以考虑使用正则表达式库。什么类型是“代码> ValueE1”/代码>等?-字符串还是整数?