我有一些输入参数,如:
param1 = param1Value¶m2 = param2Value¶m3 = param3Value ...
这些参数与字符' & ' 相关联,参数及其值与' = ' 相关联.我想将它们解析成一个像这样的键值映射:
[param1, param1Value], [param2, param2Value], [param3, param3Value],...
Run Code Online (Sandbox Code Playgroud)
但是因为参数的值包含两个关键字符,这将破坏参数解析过程.
我被告知参数传递者,他创建了这些参数格式以便于自定义,例如使用sprintf更改不同应用程序的参数值.因此很难说服他们在地图数组中分隔这些参数.
我原本打算使用yacc/lex,但要复杂到这么小的功能.sscanf也可以解析类似regexp的文本,但是为我的参数列表构建类似regexp的字符串似乎并不那么容易.
有没有简单但可靠的方法来解析它们没有关键字符?
您可以使用strtok标记字符处的'&'字符串,然后拆分"标记" '='以获取参数名称和值.
分裂处'='可以也可以strtok(或者更确切地说strtok_r)或使用strchr和strncpy/strcpy或strndup/来完成strdup.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |