【发布时间】:2015-03-03 16:17:01
【问题描述】:
在 C 中,解析具有多个分隔符的字符串的最佳方法是什么?假设我有一个字符串 A,B,C*D 并且想要存储 ABC D 的这些值。我不确定如何优雅地处理 *,除了存储最后一个字符串 C*D 然后用* 分隔符。
如果只是A,B,C,*D,我会使用strtok() 并忽略*D 的第一个索引来获得D,但* 之前没有逗号所以我不知道@ 987654328@来了。
【问题讨论】:
-
代码可以在包含分隔符的字符串中使用带有分隔符列表的 strtok()。 IE。 if( NULL != (pResult = strtok( targetString, "," ))) 和对于连续标记: if( NULL != strtok( NULL, "," ))) 但是,请注意 strtok当连续的分隔符没有中间字符时,() 不会在每个分隔符上停止。 IE。 for ',' 不会在 '' 上停止另外,请确保字符串以 nul 字节终止
-
@user3629249,如果它没有被终止,它实际上不是一个字符串:-)
标签: c string parsing delimiter