C++的字符串分割函数

转载:http://blog.csdn.net/shanzhizi/article/details/17189267

C++的字符串没有分割函数,因此需要自己写方便使用。而受到开发工具的影响,有很多用起来比较麻烦啦,下面这个比较不错奥。

用STL进行字符串的分割 

涉及到string类的两个函数find和substr:
1、find函数
原型:size_t find ( const string& str, size_t pos = 0 ) const;
功能:查找子字符串第一次出现的位置。
参数说明:str为子字符串,pos为初始查找位置。
返回值:找到的话返回第一次出现的位置,否则返回string::npos 

2、substr函数
原型:string substr ( size_t pos = 0, size_t n = npos ) const;
功能:获得子字符串。
参数说明:pos为起始位置(默认为0),n为结束位置(默认为npos)
返回值:子字符串 

实现如下:

/*File      : split1.cppAuthor    : MikeE-Mail    : Mike_Zhang@live.com*/
#include <iostream>
#include <string>
#include <vector>//字符串分割函数
std::vector<std::string> split(std::string str,std::string pattern)
{std::string::size_type pos;std::vector<std::string> result;str+=pattern;//扩展字符串以方便操作int size=str.size();for(int i=0; i<size; i++){pos=str.find(pattern,i);if(pos<size){std::string s=str.substr(i,pos-i);result.push_back(s);i=pos+pattern.size()-1;}}return result;
}int main()
{std::string str;std::cout<<"Please input str:"<<std::endl;//std::cin>>str;getline(std::cin,str);std::string pattern;std::cout<<"Please input pattern:"<<std::endl;//std::cin>>pattern;getline(std::cin,pattern);//用于获取含空格的字符串std::vector<std::string> result=split(str,pattern);std::cout<<"The result:"<<std::endl;for(int i=0; i<result.size(); i++){std::cout<<result[i]<<std::endl;}std::cin.get();std::cin.get();return 0;
}







本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机无法正常更新,无法完成更新正在撤销更改请不要关闭你的计算机如何修复...

我们电脑开机的时候可能会遇到各种问题&#xff0c;比如就有用户发现电脑开机的时候&#xff0c;一直提示无法完成更新正在撤销更改请不要关闭你的计算机&#xff0c;等待了很长时间也进不去系统&#xff0c;遇到这样的问题该怎么办呢&#xff1f;不用担心小编给大家支招&#…

水一篇

发件人标题发送时间处理系统通知您的博客申请已批准2013-10-15 13:58删除系统通知博客园博客申请通知2013-10-15 12:55删除系统通知您的博客申请未通过审批2013-10-13 11:21删除系统通知博客园博客申请通知2013-10-13 11:07删除系统通知您的博客申请未通过审批2013-10-13 11:06…

如何去掉jQWidgets中TreeGrid和Grid右下角的链接

关于如何去掉这个水印&#xff0c;这是官方的说法。 更新了jQWidgets版本&#xff0c;发现在使用过程中发现每次渲染完TreeGrid和Grid后会在表格右下角出现一个www.jqwidgets.com的span标签。 在相关的脚本中搜索www.jqwidgets.com相关的关键字都没有对应结果。于是准备从其父容…

华为2015年实习生招聘考试试题

第一题&#xff1a; 描述: 目描述&#xff1a; 编写一个函数&#xff0c;将字符串中的大写的字母(A~Z)挑出来&#xff0c;同时保留原字符串中的空格&#xff0c;将挑出的大写字母和空格按原始位置组成新的字符串。 例如&#xff1a; 1&#xff09;输入&#xff1a;AUStralia&…

【NOIP2011 Day 2】观光公交

【问题描述】 小城Y市&#xff0c;拥有n个景点。由于慕名而来的游客越来越多&#xff0c;Y市特意安排了一辆观光公交车&#xff0c;为游客提供更便捷的交通服务。观光公交车在第0分钟出现在1号景点&#xff0c;随后依次前往2、3、4……n号景点。从第i号景点开到第i1号景点需要D…

基本数据类型的自动装箱

这里以Integer类型举例&#xff1a; Integer a 1; a 2; 编译后.calss文件是这样的 Integer a Integer.valueOf(1); 自动装箱 a Integer.valueOf(a.intValue() 2); 自动拆箱&#xff0c;再自动装箱 转载于:https://www.cnblogs.com/feiZhou/p/9344494.html

自媒体和计算机相关吗,做自媒体,台式电脑跟笔记本电脑用哪个好呢?

四阿哥fly回答数&#xff1a;143 | 被采纳数&#xff1a;162019-06-29 12:16:21作为去年折腾了一年自媒体&#xff0c;各种情况遇到过&#xff0c;分享下台式电脑和笔记本到底哪个好&#xff1f;好在哪里&#xff1f;如果真的要选择&#xff0c;个人还是推荐用台式比较好。工…

JS脚本显示当前日期+星期几[转]

以下的代码提供了显示当前日期和星期几的实现方法&#xff1a; function writeDateInfo() { var day""; var month""; var ampm""; var ampmhour""; var myweekday""; var…

openCV中waitKey函数介绍

#include <opencv2/opencv.hpp> #include < iostream > #include <window.h> using namespace cv; using namespace std;int main() {Mat im;double duration;im imread("1.jpg");// 测试没有namedWindow时的waitKey执行时间duration static_cas…

JavaScript indexOf() 方法 和 lastIndexOf() 方法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置&#xff0c;在一个字符串中的指定位置从后向前搜索。 语法&#xff1a; indexOf() &#xff1a; stringObject.indexOf(searchvalue,fromi…

React进阶—性能优化

React性能优化思路 软件的性能优化思路就像生活中去看病&#xff0c;大致是这样的&#xff1a; 使用工具来分析性能瓶颈&#xff08;找病根&#xff09;尝试使用优化技巧解决这些问题&#xff08;服药&#xff09;使用工具测试性能是否确实有提升&#xff08;疗效确认&#xff…

内蒙古银行银行招聘计算机研究生,内蒙古银行招聘公告

出国留学网考研报名资讯&#xff1a;内蒙古2015考研报考公告&#xff0c;希望仔细阅读考研报名公告&#xff0c;及时进行报名&#xff0c;尽量避开报名高峰期!内蒙古2015考研报考公告一、关于报考点的的安排我区共设12个报考点&#xff1a;呼和浩特市招生考试管理中心、内蒙古大…

ubuntu 13.04 telnet 详细配置

1. sudo vi /etc/xinetd.d/telnet并加入以下内容&#xff1a;# default: on# description: The telnet server serves telnet sessions; it uses \# unencrypted username/password pairs for authentication.service telnet{disable noflags REUSEsocket_type streamwait …

C++定义隐式转换函数,将类转换为内部的一个成员变量

C中单参数构造函数若不声明为explict&#xff0c;在合适的场合可以产生隐式转换&#xff1a;由成员变量类型转换为类类型。 下面的代码展示如何实现反向的转换&#xff1a; Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/…

2015年百度面经

百度问的是开放性的问题&#xff0c;应该是为了考察你的综合能力吧&#xff0c;问了两个问题 一&#xff0c;html&css 涉及的内容 块元素与行内元素&#xff0c;浮动&#xff0c;清除浮动 1&#xff0c;一个100px的容器&#xff0c;里面塞了一个空的div&#xff0c;这个di…

计算机网页设计与制作论文,网页设计与制作论文

二十一世纪是信息化的时代&#xff0c;通过互联网&#xff0c;就能达到足不出户便可了解世界的目的。为了加深对互联网的了解&#xff0c;《网页设计与制作》这门课的出现就成为了必然。1《网页设计与制作》现状问题分析(1)对课程不了解很多学生都有这个困惑&#xff0c;这门课…

mybatis中#{}和${}的区别

http://www.cnblogs.com/davidwang456/p/4929426.html转载于:https://www.cnblogs.com/xtdxs/p/6666017.html

游标定位:Cursor类

关于 CursorCursor 是每行的集合。使用 moveToFirst() 定位第一行。你必须知道每一列的名称。你必须知道每一列的数据类型。Cursor 是一个随机的数据源。所有的数据都是通过下标取得。关于 Cursor 的重要方法&#xff1a;close() 关闭游标&#xff0c;释放资源copyStringToBuf…

Supervised Descent Method and its Applications to Face Alignment

广播说明&#xff1a; 进入深度学习时代&#xff0c;如下的方法已经失去可比性&#xff0c;且我们的代码实现地很粗糙&#xff0c;如果坚持要用&#xff0c;推荐如下代码 https://github.com/wanglin193/SupervisedDescentMethod &#xff08;看起来作者对sdm实现的不错&…

导出Excel神器最终版

泛型列表导出Excel&#xff1a; 最近好多导出问题就整这么个玩意共享给大家public class Export{/// <summary>/// 泛型导出Excel/// </summary>/// <param name"strCaption">Excel文件中的标题</param>/// <param name"pList"…