我正在使用strtok函数,其第二个参数是分隔符列表。我正在尝试将分隔符设置为逗号后跟空格,例如:,(space)
因此我将函数设置为 strok(foobar,", ") 。这个问题是现在分隔符是逗号,
或空格(space)
。
我如何克服这个问题,我也不介意使用类
我如何克服这个问题
通过不使用strtok
, 它只能用于标记带有 1 个字符分隔符的字符串,并且由于它的许多陷阱而无论如何都是不明智的。
相反,我认为最简单的解决方案是简单地std::find
使用您正在寻找的分隔符,并构建一个标记集合。
您为这项工作使用了错误的工具。分隔符是逗号或空格不是问题——这是设计使然。改为使用。strstr
您可以使用标准 C 函数 strstr 自己搜索分隔符。考虑到 strtok 用源字符串中的零字符替换分隔符。