本文摘自PHP中文网,作者青灯夜游,侵删。
在学习c++中string相关基本用法的时候,发现了sstream的istringstream[1]可以将字符串类似于控制台的方式进行输入,而实质上这个行为等同于利用空格将一个字符串进行了分割。于是考虑到可以利用这个特性来实现c++库函数中没有的字符串分割函数split
1 2 3 4 5 6 |
|
实现细节
目的是可以像js中一样,调用一个函数即可以方便地获取到处理完毕后的字符串数组,根据c++的实际情况再进行参数调整。
1. 输入输出:
1 |
|
返回:处理完的字符串数组的首地址
传入:字符串str、分隔符token(默认参数为空格)、以及引用参数length,指明处理完毕后动态分配的数组长度
2. 数据透明处理:
由于istringstream会像cin一样,把空格视为数据间的界限,所以当分隔符不是空格时,需要将传入的分隔符换为空格,并且要提前对原有空格进行数据透明处理
字符替换利用了库algorithm中的replace() [2]
1 2 3 4 5 6 7 |
|
1 2 3 |
|
3. 数据分割:
1 2 3 4 5 6 7 8 9 10 11 |
|
4. 数组生成:
1 2 3 4 5 6 7 8 9 |
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
本文来自 C#.Net教程 栏目,欢迎学习!
以上就是c++如何实现字符串分割函数split?(代码示例)的详细内容!
相关阅读 >>
更多相关阅读请进入《C++》频道 >>