我想为CPP字符串使用字符串Tokenizer,但我能找到的只是Char *。 有没有类似的CPP字符串?用于CPP字符串的字符串标记器?
7
A
回答
7
你所说的“令牌”是什么意思?如果这件事情被任何空白分离,字符串流是你想要什么:
std::istringstream iss("blah wrxgl bxrcy")
for(;;) {
std::string token;
if(!(iss>>token)) break;
process(token);
}
if(!iss.eof()) report_error();
另外,如果你在寻找一个特定单一分隔符,你可以用std::getline(iss,token,sep_char)
取代iss>>token
。
如果一个以上的字符可以作为分隔符(如果不是空格),则可以使用std::string::find_first()
和std::string::substr()
的组合。
0
退房STL交易算法像find_first_of,find_first_not_of等创建一个自定义的。
4
您可以通过chubsdad或使用升压标记者就为说:http://www.boost.org/doc/libs/1_44_0/libs/tokenizer/tokenizer.htm
自己做,如果你是通过升压affraid并不复杂。
+0
这里是来自chubsdad的+1 :) – Chubsdad 2010-08-26 09:43:21
1
你应该看看Boost Tokenizer
0
试试这个片段,我发现某处(甚至在这里?):
#include <string>
#include <vector>
#include <sstream>
std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) {
std::stringstream ss(s);
std::string item;
while(std::getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}
std::vector<std::string> split(const std::string &s, char delim) {
std::vector<std::string> elems;
return split(s, delim, elems);
}
相关问题
- 1. java字符串标记器
- 2. 标记字符串
- 3. Java字符串标记器分隔符
- 4. yaml-cpp解析字符串
- 5. Java中的字符串标记器
- 6. ios中的字符串标记器
- 7. Java中的字符串标记器
- 8. 使用html标记从字符串中提取子字符串
- 9. PHP字符串标记化
- 10. Java标记字符串
- 11. 如何标记字符串
- 12. 字符串标记requiremen
- 13. C#字符串标记化
- 14. 字符串标记问题
- 15. 标记化字符串
- 16. 字符串标记问题
- 17. 标记化字符串
- 18. C++标记化字符串
- 19. 带分隔符的标记字符串“/”
- 20. 用于*和/的字符串标记的Java分隔符
- 21. 字符串标记器失败
- 22. EXSLT字符串标记器上下文
- 23. 字符串标记器,消毒输入?
- 24. Haskell字符串标记器函数
- 25. 字符等于字符串
- 26. 字符串不等于字符串?
- 27. 字符串不等于字符串?
- 28. 关于字符串,字符串
- 29. 允许空字符串用于标记PhoneAttribute或UrlAttribute的字段
- 30. 用于在Matlab中标记数字的字符串插值
怎么样从下面的例子:http://www.codeproject.com/KB/recipes/Tokenizer。 aspx他们非常高效,有点优雅。字符串工具包库使得C++中的复杂字符串处理变得简单和容易。 – 2010-12-08 05:31:13
[使用strtok与std :: string](http://stackoverflow.com/questions/289347/using-strtok-with-a-stdstring) – bobobobo 2013-03-05 19:00:59