13
A
回答
26
将一个字符串转换为标记的矢量(线程安全):
std::vector<std::string> inline StringSplit(const std::string &source, const char *delimiter = " ", bool keepEmpty = false)
{
std::vector<std::string> results;
size_t prev = 0;
size_t next = 0;
while ((next = source.find_first_of(delimiter, prev)) != std::string::npos)
{
if (keepEmpty || (next - prev != 0))
{
results.push_back(source.substr(prev, next - prev));
}
prev = next + 1;
}
if (prev < source.size())
{
results.push_back(source.substr(prev));
}
return results;
}
1
您可以使用strtok_r函数,但请仔细阅读手册页,以便了解它如何保持状态。
1
看this教程,这是我迄今发现的符号化迄今为止最好的教程。它涵盖的包括使用函数getline()和find_first_of()在C++的std不同的方法实现的)C中的最佳实践,并的strtok(
相关问题
- 1. C#字符串标记化
- 2. 目标C:字符串标记化
- 3. c字符串标记化问题
- 4. PHP字符串标记化
- 5. 标记化字符串
- 6. 标记化字符串
- 7. 标记化字符串中使用STL
- 8. XQuery的XML标记化的字符串
- 9. python的Jupyter字符串标记化
- 10. xsl字符串标记化重复值
- 11. 记号化的字符串在C++
- 12. 记号化字符串,包括在C++
- 13. 标记字符串
- 14. C++,如何标记这个字符串?
- 15. Visual Studio C++中的字符串标记化
- 16. java字符串标记器
- 17. Java标记字符串
- 18. 如何标记字符串
- 19. 字符串标记requiremen
- 20. 字符串标记问题
- 21. 字符串标记问题
- 22. 字符串标记化,按标记分隔而不是分隔符
- 23. 字符串标记化算法不会令牌化
- 24. 格式化C字符串
- 25. 本地化字符串C#
- 26. 字符串格式化C#
- 27. 序列化字符串C
- 28. 令牌化字符串C
- 29. C#+字符串格式化
- 30. 与作废字符串标记化定界符
的可能重复[如何记号化一字符串在C++?](http://stackoverflow.com/questions/53849/how-do-i-tokenize-a-string-in-c) – Corbin 2012-04-07 04:20:58
http://stackoverflow.com/a/236803/240633 – ergosys 2012-04-07 04:27:31