可以使用多种方法来标记 std::string。一种常见的方法是使用 C 函数 strtok(),它将字符数组作为输入,并根据指定的分隔符将其分解为标记。然而,std::string 对象不能直接传递给 strtok(),因为它们不指向字符数组。
为了克服这个限制,我们可以使用另一种方法来标记 std::string。其中一种方法是使用 istringstream 对象,该对象可以通过将 std::string 传递给其构造函数来创建。然后,istringstream 对象可用于使用 getline() 函数从字符串中读取标记,该函数将分隔符作为第二个参数。
#include <iostream> #include <string> #include <sstream> int main() { std::string myText("some-text-to-tokenize"); std::istringstream iss(myText); std::string token; while (std::getline(iss, token, '-')) { std::cout << token << std::endl; } return 0; }
在此示例中,istingstream 对象用于读取std::string 将“some-text-to-tokenize”转换为一系列标记,由“-”字符分隔。 getline() 函数用于从字符串中提取每个标记,然后将标记打印到控制台。
使用 istringstream 的另一种方法是使用 Boost.Tokenizer 等实用程序,它提供一种更灵活和可定制的字符串标记方法。然而,istingstream 方法通常足以满足基本的标记化需求。
以上是如何在不使用'strtok()”的情况下标记'std::string”?的详细内容。更多信息请关注PHP中文网其他相关文章!