今天工作因原因,需要实现一个split的功能,以前也做过,但一直没有把他记下来,所以又重新写了一次。这次做个笔记以备后用,各位网友感兴趣也可以直接拿来用过。
例子:
一个这样的字符串:“123,456,789,0”。把他截取成这样的字符串数组 [123],[456],[789],[0]。众所周知c++默认没有提供这样功能的函数,下面我们自己来实现它
不多说直接上代码:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<string> splitEx(const string& src, string separate_character)
{
vector<string> strs;
int separate_characterLen = separate_character.size();//分割字符串的长度,这样就可以支持如“,,”多字符串的分隔符
int lastPosition = 0,index = -1;
while (-1 != (index = src.find(separate_character,lastPosition)))
{
strs.push_back(src.substr(lastPosition,index - lastPosition));
lastPosition = index + separate_characterLen;
}
string lastString = src.substr(lastPosition);//截取最后一个分隔符后的内容
if (!lastString.empty())
strs.push_back(lastString);//如果最后一个分隔符后还有内容就入队
return strs;
}
int _tmain(int argc, _TCHAR* argv[])
{
string s = "123,456,789,0,888";
string del = ",";
vector<string> strs = splitEx(s, del);
for ( unsigned int i = 0; i < strs.size(); i++)
{
cout << strs[i].c_str() << endl;
}
return 0;
}
输出:
123
456
789
0
888
PS:纯粹个人使用,没有经过严格测试,也许还有一些考虑不周的地方,欢迎大家指出。
希望天一直是蓝的,真的很美......
from:http://www.cnblogs.com/vieri122/archive/2010/05/05/1728296.html
分享到:
相关推荐
由于c++不含内置分割split,此文档包含c++spilt函数,和输出
Split函数用法 初学者的疑惑,怎样式用
.net技术中split函数应用广泛,CB中却没有,为了解决有这方面烦恼的朋友的问题,提供个小小函数。 有了它,你的问题将迎刃而解。
用类实现Split函数,将字符串按分隔符分成数组。采用纯C与动态内存分配方法编写,原使用与Linux C下,现采用类的方式实现,使用更加方便,使用方法如下: CCSplit oField char *Field; int FieldCount=oField....
自己封装的纯C++的字符串处理函数大全,像特别好用的 字符串切分 Split函数代码均已经过测试,并有接口说明,可方便调用。
C++分割字符串的实现 C++ split函数的实现方法
主要给大家介绍了关于如何在c++中实现字符串分割函数split的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
标准C/C++编写的字符串分隔函数,可以设置分隔字符串,解出字符串存到vector里面。有需要的可以下载
我们还实现了calculate_entropy函数来计算数据集的熵,find_best_split函数来查找最佳划分点,get_majority_label函数来获取数据集中出现最多的标签,build_decision_tree函数来递归地构建决策树,predict函数来预测...
3) 有些函数返回的是MyString& 、Char& 等(引用),MyString、Char 等(传值)这得看你返回的对象是函数的局部变量还是全局变量(或者类当前对象成员变量);前者只能返回一个MyString、Char 等;后者强烈建议返回...
本组建主要用于在程序中解析预先编写的类C... split: replace:字符串替换函数 printf: 这些函数基本与同名c函数相同 4、可预先编写一组脚本文件,编译时为每个文件指定ID,供调用时选择 5、字符串可直接赋值及相加
在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,需要自己写。 网上给出的解决方案是这里的三种方法。但我是通过JNI访问的,在里面用这些vector可能不中,自己封装了个,仅供参考: ...
本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考。具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。...//借助strtok实现split #include <
一个代码较少的字符串截取函数 很通用的
5.25 Visual C++ 2010 Split Button控件简介与开发 261 5.26 Visual C++ 2010 Network Address控件简介与开发 262 5.27 Visual C++ 2010 Check Box控件简介与开发 262 5.28 Visual C++ 2010 Radio Button控件简介与...
Metro新特性、Visual Studio 2012九大新功能,Visual C++ 2012语言新特性,Visual C++ 2012的异步编程与网络编程,实现并行编程充分利用多核处理能力,基于Visual C++充分使用GPU的计算能力,使用Lambda、函数对象和...
经常碰到字符串分割的问题,这里总结下,也方便我以后使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim);...//借助strtok实现split #include #include int main() { char
《字符串的处理与函数的封装》课程设计,可执行性强,代码简单易懂,有注释