提升分裂字符串

时间:2011-01-29 09:35:15

标签: c++ boost

如何在不制作字符串副本的情况下拆分?

3 个答案:

答案 0 :(得分:1)

您可以使用C ++ 0x或C ++ 98 TR1中定义的std::regex - 这会将迭代器返回到字符串中(好吧,无论如何都在幕后) - 因此它不涉及复制字符串。 C ++ 0x正则表达式变体支持提取匹配和拆分(提取不匹配) - 因此它是strtok的完全替代,具有很多额外的功能。

例如,请John Cook's webpagewikipediavideo by Stephan T Lavavej。您可能需要使用boost::regex,直到更广泛地实现C ++ 0x;两者兼容。

答案 1 :(得分:0)

使用Boost Split,你不能。拆分字符串而不复制字符串的明显(但丑陋)方法是strtok(或者,最好是strtok_s)。

答案 2 :(得分:0)

您可以使用类似于llvm::StringRef的收件人,它只是指向char数组和大小的指针,并且不为基础序列提供增变器。

然而,这意味着要重新编码自己的分裂逻辑。

相关问题