字串操作之分割字串

2021-07-04 10:22:23 字數 818 閱讀 7687

分割字串分兩種,一類是以某個字元為key分割,一類是以某個串為key分割。

以串分割的

先找到key在原字串中的位置,這個演算法就多了,kmp

然後用strcnp,strcat來操作,舉個例子,也是引出本次討論的問題,

刪除:80三個字元。

char p = "";

char *result = strchr(&p[5],':');

int local = result-p;

int i = 0;

int j = i+3;

while(result[j])

result[i] = '\0';

cout<

此處沒有開闢新的空間,如果寫成函式也可直接返回p指標,改變了p指標指向的內容。因為問題的特殊性,招到第二個冒號的位置就可以招到:80的位置了。

第二類問題,以某個字元分割

有庫函式strtok()

char *strtok(char *s, const char *delim);

strtok()用來將字串分割成乙個個片段。引數s指向欲分割的字串,引數delim則為分割字串,當strtok()在引數s的字串中發現到引數delim的分割字元時則會將該字元改為\0 字元。在第一次呼叫時,strtok()必需給予引數s字串,往後的呼叫則將引數s設定成null。每次呼叫成功則返回被分割出片段的指標。

char sentence="this is a sentence with 7 tokens";

cout<<"the string to be tokenized is:\n"<

unix中有strseq()函式。

delphi之分割字串

因為喜歡用文本來記錄資料,比如帳號密碼等等,乙個遊戲帳戶一行 帳號1,密碼1,遊戲區11 帳號2,密碼2,遊戲區11 需要用到分割字串函式。delphi的classes有extractstrings函式,感覺用起來不好,後來網上找了個,如下 function splitstring pstring ...

字串操作 靠字串分割字串

字串分解函式。注意strtok比較複雜。要妥善運用!也可以不用strtok函式,但要實現字串靠字串分割比較困難!注意str指向的空間必須是可讀可寫的 如陣列或動態分配的空間 不能為字串常量的指標,因為strtok改變了其中的內容。include include 功能 將str中的字串按照elemon...

mysql分割字串 mysql分割字串

專案有通過一批id去過濾結果的需求,因為這個id是從其他平台拉下來的excel,為了避免加引號逗號的麻煩,在mysql儲存過程裡面拼接。在此做個記錄。很多地方用得上。1.通過某個字元,分割字串的函式。輸入分別為f string 待分割字串 f delimiter 分割字元 f order 取的字串的...