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.pswp.cn/news/259291.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259291.shtml
英文地址,請注明出處:http://en.pswp.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"…