C++中strtok()函數(shù)的用法介紹
更新時(shí)間:2013年09月10日 09:21:14 作者:
以下是對(duì)C++中strtok()函數(shù)的使用方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
函數(shù)原型:char *strtok(char *s, const char *delim);
Function:分解字符串為一組字符串。s為要分解的字符串,delim為分隔符字符串。
Description:strtok()用來將字符串分割成一個(gè)個(gè)片段。參數(shù)s指向欲分割的字符串,參數(shù)delim則為分割字符串,當(dāng)strtok()在參數(shù)s的字符串中發(fā)現(xiàn)到參數(shù)delim的分割字符時(shí) 則會(huì)將該字符改為\0 字符。在第一次調(diào)用時(shí),strtok()必需給予參數(shù)s字符串,往后的調(diào)用則將參數(shù)s設(shè)置成NULL。每次調(diào)用成功則返回被分割出片段的指針。
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char sentence[]="This is a sentence with 7 tokens";
cout<<"The string to be tokenized is:\n"
<<sentence<<"\n\nThe tokens are:\n\n";
char *tokenPtr=strtok(sentence," ");
while(tokenPtr!=NULL) {
cout<<tokenPtr<<'\n';
tokenPtr=strtok(NULL," ");
}
cout<<"After strtok, sentence = "<<sentence<<endl;
return 0;
}
/* 函數(shù)第一次調(diào)用需設(shè)置兩個(gè)參數(shù)。第一次分割的結(jié)果,返回串中第一個(gè) ',' 之前的字符串,也就是上面的程序第一次輸出abc。
* 第二次調(diào)用該函數(shù)strtok(NULL,","),第一個(gè)參數(shù)設(shè)置為NULL。結(jié)果返回分割依據(jù)后面的字串,即第二次輸出d。
* strtok是一個(gè)線程不安全的函數(shù),因?yàn)樗褂昧遂o態(tài)分配的空間來存儲(chǔ)被分割的字符串位置
* 線程安全的函數(shù)叫strtok_r,ca
* 運(yùn)用strtok來判斷ip或者mac的時(shí)候務(wù)必要先用其他的方法判斷'.'或':'的個(gè)數(shù),
* 因?yàn)橛胹trtok截?cái)嗟脑?,比如?192..168.0...8..."這個(gè)字符串,strtok只會(huì)截取四次,中間的...無論多少都會(huì)被當(dāng)作一個(gè)key
*/
Function:分解字符串為一組字符串。s為要分解的字符串,delim為分隔符字符串。
Description:strtok()用來將字符串分割成一個(gè)個(gè)片段。參數(shù)s指向欲分割的字符串,參數(shù)delim則為分割字符串,當(dāng)strtok()在參數(shù)s的字符串中發(fā)現(xiàn)到參數(shù)delim的分割字符時(shí) 則會(huì)將該字符改為\0 字符。在第一次調(diào)用時(shí),strtok()必需給予參數(shù)s字符串,往后的調(diào)用則將參數(shù)s設(shè)置成NULL。每次調(diào)用成功則返回被分割出片段的指針。
復(fù)制代碼 代碼如下:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char sentence[]="This is a sentence with 7 tokens";
cout<<"The string to be tokenized is:\n"
<<sentence<<"\n\nThe tokens are:\n\n";
char *tokenPtr=strtok(sentence," ");
while(tokenPtr!=NULL) {
cout<<tokenPtr<<'\n';
tokenPtr=strtok(NULL," ");
}
cout<<"After strtok, sentence = "<<sentence<<endl;
return 0;
}
/* 函數(shù)第一次調(diào)用需設(shè)置兩個(gè)參數(shù)。第一次分割的結(jié)果,返回串中第一個(gè) ',' 之前的字符串,也就是上面的程序第一次輸出abc。
* 第二次調(diào)用該函數(shù)strtok(NULL,","),第一個(gè)參數(shù)設(shè)置為NULL。結(jié)果返回分割依據(jù)后面的字串,即第二次輸出d。
* strtok是一個(gè)線程不安全的函數(shù),因?yàn)樗褂昧遂o態(tài)分配的空間來存儲(chǔ)被分割的字符串位置
* 線程安全的函數(shù)叫strtok_r,ca
* 運(yùn)用strtok來判斷ip或者mac的時(shí)候務(wù)必要先用其他的方法判斷'.'或':'的個(gè)數(shù),
* 因?yàn)橛胹trtok截?cái)嗟脑?,比如?192..168.0...8..."這個(gè)字符串,strtok只會(huì)截取四次,中間的...無論多少都會(huì)被當(dāng)作一個(gè)key
*/
您可能感興趣的文章:
- C語言切割多層字符串(strtok_r strtok使用方法)
- PHP strtok()函數(shù)的優(yōu)點(diǎn)分析
- C++中sort函數(shù)的基礎(chǔ)入門使用教程
- 詳解C++調(diào)用Python腳本中的函數(shù)的實(shí)例代碼
- C++函數(shù)指針和回調(diào)函數(shù)使用解析
- node.js調(diào)用C++函數(shù)的方法示例
- c/c++ 標(biāo)準(zhǔn)庫(kù) bind 函數(shù)詳解
- C++中的六個(gè)函數(shù)
- C++根據(jù)傳入的函數(shù)指針來解析需要的參數(shù)(推薦)
- strtok函數(shù)的使用示例
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(198.打家劫舍)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(198.打家劫舍),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
C++11中隱式類型轉(zhuǎn)換的實(shí)現(xiàn)示例
C++類型轉(zhuǎn)換分為:隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換,本文主要介紹了C++11中隱式類型轉(zhuǎn)換的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
C語言實(shí)現(xiàn)撲克牌計(jì)算24點(diǎn)
這篇文章主要為大家詳細(xì)介紹了C語言如何實(shí)現(xiàn)撲克牌計(jì)算24點(diǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
C++結(jié)構(gòu)體與類指針知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了關(guān)于C++結(jié)構(gòu)體與類指針知識(shí)點(diǎn)以及相關(guān)內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。2019-09-09
詳解C語言中freopen()函數(shù)和fclose()函數(shù)的用法
這篇文章主要介紹了詳解C語言中freopen()函數(shù)和fclose()函數(shù)的用法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08

