[cpp]便捷的字符串分割方法
前言
不像python的str提供的内置split方法一样方便的进行字符串分割,c++的string模板库没有直接提供分割字符串的成员方法。偶然在看《c++prime》时看到string模板库提供getline方法, 利用方法可以实现自定义分隔符分割字符串。
使用getline进行分割
getline函数接受三个参数,分别是input(the stream to get data from), str(the string to put the data into), delim(the delimiter character) 。该函数返回值是input。
其中input是istream类型,比如cin, istringstream等继承自istream的类,分割符为char型字符。
为了获取带空格的字符串,一般使用getline(cin, str)进行读取字符串。读取待分割字串到str中后,我们需要用其实例化一个istringstream作为getline的input才能完成分割。
分割过程中需要注意一点: 若待分割字符串中包含连续的分割字符,这种情况会得到空字符串。多数情况下我们不期望得到空字符串,因此需要判断分割得到的字符串是否为空。
Demo
Code
1 |
|
结果
欢迎讨论指正
[cpp]便捷的字符串分割方法

