字串分割 C

2021-12-30 00:44:53 字數 2583 閱讀 7300

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

一、用strtok函式進行字串分割

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

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

引數說明:str為要分解的字串,delim為分隔符字串。

返回值:從str開頭開始的乙個個被分割的串。當沒有被分割的串時則返回null。

示例: 1 //借助strtok實現split

2 #include

3 #include

4 5 int main()

6 16

17         return 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::vector<:string> split(std::string str,std::string pattern)

3 18         }

19         return result;

20 }

完整**:

view code

1 /*

2        file      : split1.cpp

3        author    : mike

4        e-mail    : [email protected]

5 */

6 #include

7 #include

8 #include

910 //字串分割函式

11 std::vector<:string> split(std::string str,std::string pattern)

12 27         }

28         return result;

29 }

3031 int main()

32 47

48         std::cin.get();

49         std::cin.get();

50         return 0;

51 }

執行效果:

三、用boost進行字串的分割

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

實現如下:

1 std::vector<:string> split(std::string str,std::string s)

2 11         return vec;

12 }

完整**:

view code

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

2 //執行環境      vc6.0 + boost 庫

3 /*

4        file      : split2.cpp

5        author    : mike

6        e-mail    : [email protected]

7 */

8 #include

9 #include

10 #include

11 #include

12 #include "boost/regex.hpp"

1314 std::vector<:string> split(std::string str,std::string s)

15 24         return vec;

25 }

26 int main()

27 36         std::cin.get();

37         std::cin.get();

38         return 0;

39 }

執行效果:

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

摘自  mikezhang的部落格 

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開頭開始的乙個個被分割...