strtok分割字串提取

2021-10-11 18:59:45 字數 1859 閱讀 6857

char *strtok(char s, const char *delim);
分解字串為一組字串。s為要分解的字串,delim為分隔符字元(如果傳入字串,則傳入的字串中每個字元均為分割符)。首次呼叫時,s指向要分解的字串,之後再次呼叫要把s設成null。

strtok函式會破壞被分解字串的完整,呼叫前和呼叫後的s已經不一樣了。

從s開頭開始的乙個個被分割的字串。當s中的字元查詢到末尾時,返回null。

如果查詢不到delim中的字元時,返回當前strtok的字串的指標。

所有delim中包含的字元都會被濾掉,並將被濾掉的地方設為一處分割的節點。

當strtok()在引數s的字串中發現引數delim中包含的分割字元時,則會將該字元改為\0 字元。

strtok()必需給予引數s字串,往後的呼叫則將引數s設定成null。每次呼叫成功則返回指向被分割出片段的指標。

char

* buf =

null

;char

*buf1,

*buf2,

*buf3;

char data[20]

="abc,def,gh"

;buf = data;

cout <<

"buf:"

<< buf << endl;

buf1 =

strtok

(buf,

",")

;cout <<

"buf[1]:"

<< buf1 << endl;

buf2 =

strtok

(null

,",");

//為null,之前strtok將buf置為null

cout <<

"buf[2]:"

<< buf2 << endl;

buf3 =

strtok

(null

,",");

cout <<

"buf[3]:"

<< buf3 << endl;

輸出buf:abc,def,gh

buf[1]

:abc

buf[2]

:def

buf[3]

:gh--

----

----

----

----

----

----

----

-------

char

* buf =

null

;char

*buf1,

*buf2,

*buf3;

char data[20]

="abc,def,gh"

;buf = data;

buf1 =

strtok

(buf,

",")

; cout <<

"buf[1]:"

<< buf1 << endl;

buf2 =

strtok

(buf,

",")

;//buf的話還是呼叫之前的

cout <<

"buf[2]:"

<< buf2 << endl;

buf3 =

strtok

(buf,

",")

;cout <<

"buf[3]:"

<< buf3 << endl;

輸出:buf[1]

:abc

buf[2]

:abc

buf[3]

:abc

strtok(分割字串)

strtok 分割字串 表頭檔案 include 定義函式 char strtok char s,const char delim 函式說明 strtok 用來將字串分割成乙個個片段。引數s指向欲分割的字串,引數delim則為分割字串,當strtok 在引數s的字串中 發現到引數delim的分割字元...

分割字串 strtok 函式

在這個競爭的社會,對手無處不在,相信好勝心或者自尊心每個人都有,別人想要時時刻刻處處都要超越你,面對競爭對手或許它會採取各種手段來對付你,不要不相信,這種無恥的人是有的,那麼對待它們首先要做到的一點就是忍,暴力是衝動的不明智的選擇,它只會使你滿足一瞬間的慾望,卻會給自己帶來無窮的傷害,甚至會毀掉自己...

字串分割函式strtok

分解字串為一組字串。s為要分解的字串,delim為分隔符字串。例如 strtok abc,def,ghi 最後可以分割成為abc def ghi.尤其在點分十進位制的ip中提取應用較多。strtok 用來將字串分割成乙個個片段。引數s指向欲分割的字串,引數delim則為分割字串中包含的所有字元。當s...