C++中strtok()函數(shù)的用法介紹
更新時間:2013年09月10日 09:21:14 作者:
以下是對C++中strtok()函數(shù)的使用方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
函數(shù)原型:char *strtok(char *s, const char *delim);
Function:分解字符串為一組字符串。s為要分解的字符串,delim為分隔符字符串。
Description:strtok()用來將字符串分割成一個個片段。參數(shù)s指向欲分割的字符串,參數(shù)delim則為分割字符串,當(dāng)strtok()在參數(shù)s的字符串中發(fā)現(xiàn)到參數(shù)delim的分割字符時 則會將該字符改為\0 字符。在第一次調(diào)用時,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è)置兩個參數(shù)。第一次分割的結(jié)果,返回串中第一個 ',' 之前的字符串,也就是上面的程序第一次輸出abc。
* 第二次調(diào)用該函數(shù)strtok(NULL,","),第一個參數(shù)設(shè)置為NULL。結(jié)果返回分割依據(jù)后面的字串,即第二次輸出d。
* strtok是一個線程不安全的函數(shù),因為它使用了靜態(tài)分配的空間來存儲被分割的字符串位置
* 線程安全的函數(shù)叫strtok_r,ca
* 運(yùn)用strtok來判斷ip或者mac的時候務(wù)必要先用其他的方法判斷'.'或':'的個數(shù),
* 因為用strtok截斷的話,比如:"192..168.0...8..."這個字符串,strtok只會截取四次,中間的...無論多少都會被當(dāng)作一個key
*/
Function:分解字符串為一組字符串。s為要分解的字符串,delim為分隔符字符串。
Description:strtok()用來將字符串分割成一個個片段。參數(shù)s指向欲分割的字符串,參數(shù)delim則為分割字符串,當(dāng)strtok()在參數(shù)s的字符串中發(fā)現(xiàn)到參數(shù)delim的分割字符時 則會將該字符改為\0 字符。在第一次調(diào)用時,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è)置兩個參數(shù)。第一次分割的結(jié)果,返回串中第一個 ',' 之前的字符串,也就是上面的程序第一次輸出abc。
* 第二次調(diào)用該函數(shù)strtok(NULL,","),第一個參數(shù)設(shè)置為NULL。結(jié)果返回分割依據(jù)后面的字串,即第二次輸出d。
* strtok是一個線程不安全的函數(shù),因為它使用了靜態(tài)分配的空間來存儲被分割的字符串位置
* 線程安全的函數(shù)叫strtok_r,ca
* 運(yùn)用strtok來判斷ip或者mac的時候務(wù)必要先用其他的方法判斷'.'或':'的個數(shù),
* 因為用strtok截斷的話,比如:"192..168.0...8..."這個字符串,strtok只會截取四次,中間的...無論多少都會被當(dāng)作一個key
*/
您可能感興趣的文章:
相關(guān)文章
Linux下Select多路復(fù)用實現(xiàn)簡易聊天室示例
大家好,本篇文章主要講的是Linux下Select多路復(fù)用實現(xiàn)簡易聊天室示例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12