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)庫 bind 函數(shù)詳解
- C++中的六個(gè)函數(shù)
- C++根據(jù)傳入的函數(shù)指針來解析需要的參數(shù)(推薦)
- strtok函數(shù)的使用示例
相關(guān)文章
Linux下Select多路復(fù)用實(shí)現(xiàn)簡易聊天室示例
大家好,本篇文章主要講的是Linux下Select多路復(fù)用實(shí)現(xiàn)簡易聊天室示例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12