Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C解析字符串-什么是正确的工具?_C_String_Parsing - Fatal编程技术网

用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”/代码>等?-字符串还是整数?