strtok()和空字段

Mar*_*vac 4 c strtok

我正在将一些C结构序列化为字符串,而不是将其反序列化strtok().但是,不幸的是,strtok()不要检测空字段(例如1:2 :: 4).

有没有替代功能?

Dra*_*sha 9

在linux上有strsep.

引入strsep()函数作为strtok()的替代,因为后者无法处理空字段.但是,strtok()符合C89/C99,因此更具可移植性.


Tro*_*nic 7

您可以使用strchr(仅用于一个分隔符)或strcspn(对于一组可能的分隔符)来查找下一个分隔符,处理该令牌,然后只向前迈出一个字符.在循环中执行此操作,您就拥有了所需的一切.