split函数的实现
split作为字符串分割函数非常有用,但在C++里面没有这个函数。自己实现一个分割函数:
1、遇到多个分隔符连在一起,则不做分割
2、()内的分隔符不起作用
3、如果只有(,没有)不影响分隔符
#include <iostream>
#include <cstring> using namespace std;
void splitString(const char* aString, char aSeperator)
{
if(NULL == aString)
return; const char* start = aString;
const char* end = aString;
int len = strlen(aString);
bool isCprocessing = false; while(*start != '\0')
{
while(*end != '\0' && *end != aSeperator && *end != '(')
{
++end;
}//end while // '('和')'配对 if(!isCprocessing && '(' == *start)
{
++end;
while(*end != '\0' && *end != ')')
{
++end;
}
if('\0' == *end)
end = start + ; } if('(' == *start)
isCprocessing = true; if('(' == *end)
{
const char* temp = end++; //先保存这个位置,在括号不配对时,记得将end置位
while(*end != '\0' && *end != ')')
{
++end;
}//end while
if('\0' == *end)
end = temp;
} if('\0' == *end) //none aSeperator
{
cout << start << endl;
break;
} //剩下最后一种,遇到分隔符,此时统计分隔符的个数
char* tem = new char[len + ];
char* temStart = tem; while(aSeperator == *end )
{
*tem++ = *end++; //end指向分隔符的下一项
}
*tem = '\0';
if(strlen(temStart) == )
{
while(start != end - && *start != '\0')
cout << *start++;
cout << endl;
start = end;
delete tem;
}
else
{
delete tem;
} }//end while } int main()
{
char str[];
memset(str, , );
cout << "please input str: " << endl;
cin >> str; char ch = '+';
splitString(str, ch);
cout << "Hello World!" << endl;
return ;
}
split函数的实现的更多相关文章
- Join函数 及Split函数精解示例
'************************************************************************* '**模 块 名:Join函数 及Split函数精 ...
- python split()函数
Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...
- oracle实现split函数功能
转载: http://blog.csdn.net/jojo52013145/article/details/6758279在实际的应用中,为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 R ...
- MSSQL—字符串分离(Split函数)
前面提到了记录合并,有了合并需求肯定也会有分离需求,说到字符串分离,大家肯定会想到SPLIT函数,这个在.NET,Java和JS中都有函数,很可惜在SQL SERVER中没有,我们只能自己来写这么一个 ...
- oracle pl/sql split函数
在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作. 以java开发为例: 前台传入字符串拼接形式的一个JSON数据,如:"1001,1002,1003",这可能代表了一组序号 ...
- 【SQL】sql版Split函数。用于拆分字符串为单列表格
功能与.net版string.Split函数类似,只不过.net返回的是数组,这个返回的是一个单列表格,每个拆分出来的子串占一行.可选是否移除空格子串和重复项.市面上类似的函数不算少,但大多都是在循环 ...
- java String.split()函数的用法分析
java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,195 次 在java.lang包中有String.spl ...
- python中join和split函数
一个是分割,一个是连接. 惯例,先看内部帮助文档 Help on method_descriptor: join(...) S.join(iterable) -> string Return a ...
- js使用split函数按照多个字符对字符串进行分割的方法
这篇文章主要介绍了js使用split函数按照多个字符对字符串进行分割的方法,实例分析了split函数的使用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了js使用split函数按照多个 ...
- python split()函数使用拆分字符串 将字符串转化为列表
函数:split()Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list ...
随机推荐
- PHP求余函数fmod()
定义和用法 fmod() 函数返回除法的浮点数余数. 语法 fmod(x,y) 参数 描述 x 必需.一个数. y 必需.一个数. 说明 返回被除数(x)除以除数(y)所得的浮点数余数.余数(r)的定 ...
- JavaScript深入浅出5-数组
慕课网教程视频地址:Javascript深入浅出 数组:值的有序集合 创建数组:字面量,构造器new array() 数组的读写:push() 尾部加入新元素 unshift() 头部加入新元素 po ...
- Pycharm用Ctrl+鼠标滚轮调节代码字体大小
File --> Setting --> Editor --> General --> 勾选Change font size (zoom) with Ctrl+Mouse W ...
- grep 正则表达式
本文转自:http://www.jb51.net/article/31207.htm 正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.aw ...
- sql语句中----删除表数据drop、truncate和delete的用法
sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table tb --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...
- 使用MultipartEntity进行post请求的默认MIME类型
MultipartEntity .FileBody的默认MIME类型:application/octet-stream
- LeetCode之136. Single Number
-------------------------------------- 一个数异或它自己会得到0,0异或n会得到n,所以可以用异或来消除重复项. AC代码如下: public class Sol ...
- 无废话ExtJs 入门教程十七[列表:GridPanel]
无废话ExtJs 入门教程十七[列表:GridPanel] extjs技术交流,欢迎加群(201926085) 在Extjs中,GridPanel用于数据显示,即我们平时说的列表页.在本节中,我们先对 ...
- 再谈通过http访问SSAS
问题: 在有些场景下,数据中心会分为不同的服务器场:数据库场和应用程序场.服务器场间有严格的防火墙控制,其中数据库场只能建立从应用程序场的防火墙穿越,也就是说不允许任何客户端直接连接到防火墙. 这种策 ...
- [Unity3D]Unity资料大全免费分享
都是网上找的连七八糟的资料了,整理好分享的,有学习资料,视频,源码,插件……等等 东西比较多,不是所有的都是你需要的,可以按 ctrl+F 来搜索你要的东西,如果有广告,不用理会,关掉就可以了,如 ...