C++ std::string的就地标记化

C++ std::string的就地标记化,c++,string,C++,String,可能重复: 有几种可能性可以像strtok使用C样式的字符串那样标记std::string。我在字符串中找到了boost::tokenizer、getline或手动迭代。但每一种可能性都不同于strtok,因为它们都不存在。他们将字符复制到新的字符串中(如果我给出的一种可能实际上工作不一样,请纠正我),而strtok不需要分配(至少从我的观点来看,它可能会在内部分配内存)任何内存 现在我只是好奇,是否有任何方法可以实现std::string的这种行为?我想通过访问,但它返回一个常量指针 有什么

可能重复:

有几种可能性可以像strtok使用C样式的字符串那样标记std::string。我在字符串中找到了boost::tokenizer、getline或手动迭代。但每一种可能性都不同于strtok,因为它们都不存在。他们将字符复制到新的字符串中(如果我给出的一种可能实际上工作不一样,请纠正我),而strtok不需要分配(至少从我的观点来看,它可能会在内部分配内存)任何内存

现在我只是好奇,是否有任何方法可以实现std::string的这种行为?我想通过访问,但它返回一个常量指针


有什么想法吗?

只需将tok作为一对
std::string
迭代器,您就可以将
std::string
标记到位。

只需将tok作为一对
std::string
迭代器,您就可以将
std::string
标记到位。

已经回答:对不起,我想我尝试了错误的关键词。没问题,这是你的第一篇帖子。今天我找到时间尝试另一个问题中给出的可能性。因为我已经认为他们中的大多数都没有工作到位。只有C风格的strtok没有使用任何不必要的分配。已经回答:对不起,我想我尝试了错误的关键字。没问题,这是你的第一篇帖子。今天我找到时间尝试另一个问题中给出的可能性。因为我已经认为他们中的大多数都没有工作到位。只有C风格的strtok不使用任何不必要的分配。有没有一种方法可以将一对字符串迭代器表示为真正的字符串?@user1678062:如果你可以创建字符串的临时副本,那么你可以使用
std::string
构造函数,使用两个迭代器。好吧,然后我不得不接受它,或者写我自己的字符串类。不过谢谢你的回答!有没有一种方法可以将一对字符串迭代器表示为真正的字符串?@user1678062:如果你可以创建一个字符串的临时副本,那么你可以使用
std::string
构造函数来获取两个迭代器。那么,我必须使用它,或者编写自己的字符串类。不过谢谢你的回答!