字串分割 C

2022-02-10 06:09:31 字數 2882 閱讀 1264

經常碰到字串分割的問題,這裡總結下,也方便我以後使用。

一、用strtok

函式進行字串分割

原型: char *strtok(char *str, const char *delim);

功能:分解字串為一組字串。

引數說明:str

為要分解的字串,

delim

為分隔符字串。

返回值:從s

tr開頭開始的乙個個被分割的串。當沒有被分割的串時則返回

null

。其它:strtok函式執行緒不安全,可以使用strtok_r替代。

示例:

1

//借助strtok實現split

2 #include

3 #include 45

int main()

6 16

17return

0;18 }

執行效果:

二、用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)

返回值:子字串 

實現如下:

1

//字串分割函式

2 std::vectorstring> split(std::string str,std::string pattern)

3 18 }

19return result;

20 }

完整**:

view code

1/*2

file : split1.cpp

3author : mike

4e-mail : [email protected]*/

6 #include

7 #include

8 #include 910

//字串分割函式

11 std::vectorstring> split(std::string str,std::string pattern)

12 27 }

28return result;

29 }

3031

int main()

32 47

48 std::cin.get();

49 std::cin.get();

50return

0;51 }

執行效果:

三、用boost進行字串的分割

用boost庫的正規表示式實現字串分割

實現如下:

1 std::vectorstring> split(std::string str,std::string s)

2 11

return vec;

12 }

完整**:

view code

1

//本程式實現的是利用正規表示式對字串實現分割2//

執行環境 vc6.0 + boost 庫3/*

4file : split2.cpp

5author : mike

6e-mail : [email protected]*/

8 #include

9 #include

10 #include

11 #include

12 #include "

boost/regex.hpp"13

14 std::vectorstring> split(std::string str,std::string s)

15 24

return vec;

25 }

26int main()

27 36 std::cin.get();

37 std::cin.get();

38return

0;39 }

執行效果:

補充:最近發現boost裡面有自帶的split的函式,如果用boost的話,還是直接用split的好,這裡就不多說了,**如下:

#include #include 

#include

#include

string/classification.hpp>#include

string/split.hpp>

using

namespace

std;

intmain()

好,就這些了,希望對你有幫助。

字串分割(c++).odt

歡迎補充 

C 字串分割

c 中的字元分割是乙個常見的應用,下面是乙個字串分割的 字串分割 vectorsplit string const string str,const string delimiters else pos delim split str.find delimiters res.push back sp...

字串分割 C

經常碰到字串分割的問題,這裡總結下,也方便我以後使用。一 用strtok 函式進行字串分割 原型 char strtok char str,const char delim 功能 分解字串為一組字串。引數說明 str為要分解的字串,delim為分隔符字串。返回值 從str開頭開始的乙個個被分割的串。...

字串分割 C

經常碰到字串分割的問題,這裡總結下,也方便我以後使用。一 用strtok 函式進行字串分割 原型 char strtok char str,const char delim 功能 分解字串為一組字串。引數說明 str 為要分解的字串,delim 為分隔符字串。返回值 從s tr開頭開始的乙個個被分割...