![]() |
1
5
您可以使用一个简单的有限状态机:
|
![]() |
2
1
你可以用
编辑:我意识到这还不足以满足你的第二个要求。 |
![]() |
3
1
编写自己的函数来标记这一点应该非常简单,特别是如果您知道字符串的来源(例如,不需要担心奇怪的用户输入)
|
![]() |
4
0
我用过 strtok() 为了这个。这对带有转义字符的字符串不起作用,但我认为可以修改它来理解它们。但也不是那么简单。希望这能给你一些帮助。
德南说得有道理。在C语言中,字符串操作太难了,而且很容易在指针处理中失败。如果你的项目不是强制使用C语言,那么你肯定应该使用其他语言。 |
![]() |
5
0
Eric Robert's
Here 是.c和.h。 |
![]() |
6
0
|
![]() |
7
0
|
![]() |
8
0
你可以用 sscanf . 您可能需要使用链接中的引用创建适当的分隔符。 /*sscanf示例*/
Strtok 和 strtok_r (strtok的可重入版本)也可以用来解析字符串。 附言:我从另一个有类似要求的问题复制我的例子 |
![]() |
9
0
如果这是您唯一的扫描/标记化问题,那么您可能最好使用您已有的解决方案,或者按照Ferruccio的建议实现FSM。 另一方面,如果您有其他类似的问题,您可以寻找一个工具或库来帮助您。有人建议使用lex,但您也可以设置正则表达式库。
(也可处理
library (pmx) 但同样的概念也适用于使用google在C中查找regexp或正则表达式库的许多其他库中的一个。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 4 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 4 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 4 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 4 月前 |