char *strtok( char * strToken , const char * strDelimit );
函數用來從字符串中抽取想要的字段,首先看一個MSDN的例子:
//輸出字符串中以指定分隔符隔開的字段
#include <string.h>
#include <stdio.h>
char string[] = "A string/tof ,,tokens/nand some more tokens";
char seps[] = " ,/t/n";
char *token;
void main( void )
{
printf( "%s/n/nTokens:/n", string );
/* Establish string and get the first token: */
token = strtok( string, seps );
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s/n", token );
// printf("after modify: %s/n",string);
/* Get next token: */
token = strtok( NULL, seps );
}
}
//Output
A string of ,,tokens
行 // printf("after modify: %s/n",string);前面的註釋符。就會輸出如下:
and some more tokens
Tokens:
A
string
of
tokens
and
some
more
tokens
如果去掉上面A string of ,,tokens
after modify: A
and some more tokens
Tokens:
A
string
after modify: A
of
after modify: A
tokens
after modify: A
and
after modify: A
some
after modify: A
more
after modify: A
tokens
after modify: A
發現string已經修改了。(第一次調用strtok,在string裏面的A後面加上了NULL字符,所以這樣了。。。)
strtok第一次調用時,忽略開始的分隔符,返回第一個token的指針,並token後面加上null字符,記以null結尾。如果要得到剩下的字段,
可以繼續調用strtok(),不過第一個參數設爲NULL,第二個參數可根據你記錄的需求來設定。因此,strtok函數可以提取多種分隔符分隔的字段。