Linux學習 strtok函式的基本實現

2021-10-12 18:17:00 字數 1665 閱讀 3558

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

#include

原型

char

*strtok

(char s,

const

char

*delim)

;

使用null才可以獲取後面的字元,應該為第一次分割後str已經被破壞

char

*p;char str[

128]=;

strtok

(str,

" ")

; p =

strtok

(null

," "

);

結果:

str:hello

p :world

當strtok()在引數s的字串中發現引數delim中包含的分割字元時,

則會將該字元改為\0 字元。在第一次呼叫時,strtok()必需給予引數s字串,

往後的呼叫則將引數s設定成null。每次呼叫成功則返回指向被分割出片段的指標。

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

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

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

使用該函式進行字串分割時,會破壞被分解字串的完整,

呼叫前和呼叫後的s已經不一樣了。

第一次分割之後,原字串str是分割完成之後的第乙個字串,

剩餘的字串儲存在乙個靜態變數中,因此多執行緒同時訪問該靜態變數時,

會出現錯誤

寫雲盤時,遇到的沒用過的函式比較陌生,簡單總結以免忘了。。。

學識淺薄,希望可以幫到您

——師從上官可程式設計,陳立臣

strtok函式巢狀

分解字串為一組字串。s為要分解的字元,delim為分隔符字元 如果傳入字串,則傳入的字串中每個字元均為分割符 首次呼叫時,s指向要分解的字串,之後再次呼叫要把s設成null。原型 extern char strtok char s,char delim 用法 include 功能 分解字串為一組標記...

strtok函式簡析

官方的strtok函式,用來通過分隔字元 不支援字串,傳入的串中每個字元單獨當分隔符,如下例子組合的如123會處理1而23會被跳過 返回分隔的串的首位址 比如呼叫strtok abc123def 123456 返回值是指向abc的指標 下次要獲得 def 需要呼叫strtok null,123456...

strtok 函式的實現

strtok 是乙個庫函式,它的作用是把乙個字串按照指定的字串分割開,比如字串 nice to meet you 按照空格隔開分別為nice to meet you 那麼這個函式該怎麼實現呢?如下 include using namespace std char strtok1 char strin...