1. 程式人生 > >c++實現split()字串切片

c++實現split()字串切片

IDE是VS2013.

#include<iostream>
#include <vector>
#include<string>
using namespace std;
vector<string> split(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 = "12.45.78";
	string del =".";
	vector<string> strs = split(s,del);
	for (int i = 0; i < strs.size(); i++)
	{
		cout << strs[i]<<' ';
	}
	cout << endl;
	system("pause");
	return 0;
}
執行結果:



相關推薦

c++實現split()字串切片

IDE是VS2013. #include<iostream> #include <vector> #include<string> using namespace std; vector<string> split(const

C 實現 刪除字串空白符的函式 strtrim

說在前面的話 字串操作在很多C語言比賽裡面都有涉及,最近公眾號裡面的C語言比賽,都是兩個關於字串操作的題目,希望大家認真看題目。 直接上程式碼 /*****************************************************************

C++ 實現 根據字串 呼叫同名函式

需求: 希望根據使用者的輸入呼叫同名的函式。 因為不想寫各種 if else,所以就建立一個key為string,value為函式指標的map,根據string的值呼叫相應的函式。 以下程式碼在gcc 3.4.6下測試通過。 下面是程式碼的第一次實現: <cod

C++實現split/startswith/endswith/trim

一.split函式 1.python演示 2.C++函式原型 vector<string> split(const string& srcstr, const string

c實現字串查詢函式

1. c++貌似有這樣的方法,我用c程式碼實現了一遍,沒有實現演算法優化。可以解決基本的字串查詢需求。 /*** 返回 buf找到的與expr完全匹配的第一項的第一個字元的索引 * zgr 2013-05-23 * buf-源字串 * offset-源字串

C 實現字串按多個字符采用Split方法分割

using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);foreach (string i in sArray)

C++實現字串分割--split string

本文主要參考自cplusplus中的《Split a String》 一文。 在別的一些語言中,包括Python,C#等語言中,字串的分割都提供了標準的函式,但是C++沒有提供相關的函式。  舉個例子,給定一個字串str = "the quick brown fox" w

C語言實現split以某個字元分割一個字串

方式一: 使用strtok # include <string.h> # include <stdio.h> void split(char *src,const char *separator,char **dest,int *num) { /* s

C#實現字串按多個字符采用Split方法分割得到陣列

string agentInfo = userInfo.Attribute19.ToString();             string[] myAgent = agentInfo.Split(new string[] { "$#$" }, StringSplitOptions.None);       

C#使用split進行字串分割

在C#中string型別的欄位都會有Split屬性(通過欄位打點,就可以看到)。通過Spilt對字串進行分割,最終會分割為string型別的陣列。 程式碼: namespace ConsoleApplication1 { class Program { sta

面試題:編寫一個函式來查詢字串陣列中的最長公共字首。 如果不存在公共字首,返回空字串 ""。(c++實現

例項說明 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示例 2: 輸入: ["dog","racecar","car"] 輸出: "" 解釋: 輸入不存在公共字首。 說明: 所有輸入只包含小寫字母 a-z&

基於udp協議的字串計數【網路程式設計 - 基於udp協議的字串計數,C實現

udp_server.c #include <stdio.h> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") typedef struct sockaddr_in sockaddr_in ; typedef s

1078 字串壓縮與解壓 ——C++實現

題目 1078 字串壓縮與解壓 (20 分) 文字壓縮有很多種方法,這裡我們只考慮最簡單的一種:把由相同字元組成的一個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如 ccccc 就用 5c 來表示。如果字元沒有重複,就原樣輸出。例如 aba 壓縮後仍然是 aba。

C語言: 用遞迴實現字串的逆置

#include <stdio.h> #include <windows.h> /* 用遞迴實現對字串的逆置 */ void Reverse(char* string) { int len = strlen(string); if (strlen(string)

C#實現呼叫印表機(列印字串、列印繪圖、列印圖片),還差列印水晶報表

C#實現呼叫印表機(列印字串、列印繪圖、列印圖片),還差列印水晶報表 目的:呼叫印表機的使用 缺陷:列印的物件不全(還差列印水晶報表),不能實現在外掛繪圖板中畫什麼列印什麼 改進:同缺陷,希望朋友們能提供解決方案,和提供改進方案,請留言謝謝。 C# winfrom 介面(純功能測

【LeetCode】345.Reverse Vowels of a String(反轉字串中的母音字母)-C++實現

本題為谷歌面試題。 問題描述: 一、第一種方法:對撞指標法 #include <iostream> #include <vector> #include <string> #include <cassert> #inc

1093 字串A+B——C++實現

題目 1093 字串A+B (20 分) 給定兩個字串 A 和 B,本題要求你輸出 A+B,即兩個字串的並集。要求先輸出 A,再輸出 B,但重複的字元必須被剔除。 輸入格式: 輸入在兩行中分別給出 A 和 B,均為長度不超過 10​6​​的、由可見 ASCII 字元

c實現功能(5)實現字串轉換成數字

#include <stdio.h> int main() { //實現字串轉換成數字 char str[10] = "123"; //求取字串的長度 int len = 0; while (str[len++]); len--; //設定和

C++實現utf8和gbk編碼字串互相轉換

不同系統或者伺服器之間訊息傳遞經常遇到編碼轉換問題,這裡用C++實現了一個輕量的gbk和utf8互相轉換,可跨平臺使用。(重量級的可以用libiconv庫) 在windows下用<windows.h>標頭檔案裡的函式進行多位元組和寬字元轉換,linu

字串分割函式的C++實現

#include <iostream> #include <string> #include <vector> #include <algorithm> #include <fstream> using