我想爲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