如何拆分包含字符和数字的字符串值
我有一个 std::string s=n8Name4Surname
。如何获取 2 个字符串中的姓名?谢谢
I have a std::string s=n8Name4Surname
. How can I obtain in 2 strings the Name and the Surname? THX
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
一种方法是使用 Boost.Tokenizer。请参阅此示例:
编辑
如果将结果放入
向量
中,则代码甚至更少:One way to do this is using
Boost.Tokenizer
. See this example:EDIT
If you put the results in a
vector
, its even less code:您可以使用函数
isdigit(mystring.at(position)
检测字符串中的数字字符,然后提取这些位置之间的子字符串。请参阅:
http://www.cplusplus.com/reference/clibrary/cctype/isdigit/
You can detect numerical characters in the string using function
isdigit(mystring.at(position)
, then extract substring between those positions.See:
http://www.cplusplus.com/reference/clibrary/cctype/isdigit/
使用 Boost 分词器,并以数字 0-9 作为分隔符。然后,丢弃包含“n”的字符串。我意识到这太过分了...
Use Boost tokenizer with the digits 0-9 as delimiters. Then, throw away the string containing "n". It's overkill, I realize...
简单的STL方法:
Simple STL approach:
强制精神提升样本:
Mandatory Boost Spirit sample: